From e635b892b82d17eee8c97f26409d9783fc7595e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Verhaegen?= Date: Tue, 24 Sep 2024 19:11:49 +0200 Subject: [PATCH 01/11] class formating --- lib/src/tridy.dart | 62 +++++++++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 17 deletions(-) diff --git a/lib/src/tridy.dart b/lib/src/tridy.dart index 4a79c26..f552fd0 100644 --- a/lib/src/tridy.dart +++ b/lib/src/tridy.dart @@ -1,10 +1,17 @@ class JidloKategorizovano { - JidloKategorizovano({this.polevka, this.hlavniJidlo, this.salatovyBar, this.piti, this.ostatni}); String? polevka; String? hlavniJidlo; String? salatovyBar; String? piti; String? ostatni; + + JidloKategorizovano({ + this.polevka, + this.hlavniJidlo, + this.salatovyBar, + this.piti, + this.ostatni, + }); } /// Reprezentuje jedno jídlo z jídelníčku @@ -43,18 +50,20 @@ class Jidlo { /// URL pro vložení jídla na burzu final String? burzaUrl; - Jidlo( - {required this.nazev, - this.kategorizovano, - required this.objednano, - required this.varianta, - required this.den, - this.alergeny = const [], - this.cena, - required this.lzeObjednat, - this.orderUrl, - this.burzaUrl, - required this.naBurze}); + + Jidlo({ + required this.nazev, + this.kategorizovano, + required this.objednano, + required this.varianta, + required this.den, + this.alergeny = const [], + this.cena, + required this.lzeObjednat, + this.orderUrl, + this.burzaUrl, + required this.naBurze, + }); } /// Popisuje alergen v jídelníčku @@ -63,7 +72,11 @@ class Alergen { final String nazev; final String? popis; - const Alergen({required this.nazev, this.kod, this.popis}); + const Alergen({ + required this.nazev, + this.kod, + this.popis, + }); } enum Features { @@ -112,7 +125,13 @@ class Burza { /// Počet kusů tohoto jídla dostupného na burze int pocet; - Burza({required this.den, required this.url, required this.nazev, required this.pocet, this.varianta}); + Burza({ + required this.den, + required this.url, + required this.nazev, + required this.pocet, + this.varianta, + }); } /// Reprezentuje jídelníček pro jeden den @@ -125,7 +144,12 @@ class Jidelnicek { // Seznam výdejen (je prázdný, pokud je pouze jedna) Map vydejny; - Jidelnicek(this.den, this.jidla, {this.vydejny = const {}}); + + Jidelnicek( + this.den, + this.jidla, { + this.vydejny = const {}, + }); } /// Reprezentuje informace o přihlášeném uživateli @@ -169,5 +193,9 @@ class Uzivatel { class LoginData { final String username; final String password; - LoginData(this.username, this.password); + + LoginData( + this.username, + this.password, + ); } From 11d989a1d0554ab9b887fe180724e1c655af9fc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Verhaegen?= Date: Tue, 24 Sep 2024 19:23:52 +0200 Subject: [PATCH 02/11] add toJson & fromJson methods to some classes --- lib/src/tridy.dart | 76 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/lib/src/tridy.dart b/lib/src/tridy.dart index f552fd0..b57ee77 100644 --- a/lib/src/tridy.dart +++ b/lib/src/tridy.dart @@ -12,6 +12,24 @@ class JidloKategorizovano { this.piti, this.ostatni, }); + + /// Převést na JSON + Map toJson() => { + 'polevka': polevka, + 'hlavniJidlo': hlavniJidlo, + 'salatovyBar': salatovyBar, + 'piti': piti, + 'ostatni': ostatni, + }; + + /// Převést z JSON + factory JidloKategorizovano.fromJson(Map json) => JidloKategorizovano( + polevka: json['polevka'], + hlavniJidlo: json['hlavniJidlo'], + salatovyBar: json['salatovyBar'], + piti: json['piti'], + ostatni: json['ostatni'], + ); } /// Reprezentuje jedno jídlo z jídelníčku @@ -64,6 +82,36 @@ class Jidlo { this.burzaUrl, required this.naBurze, }); + + /// Převést na JSON + Map toJson() => { + 'nazev': nazev, + 'kategorizovano': kategorizovano?.toJson(), // Assuming JidloKategorizovano has toJson() + 'objednano': objednano, + 'varianta': varianta, + 'cena': cena, + 'lzeObjednat': lzeObjednat, + 'naBurze': naBurze, + 'den': den.toIso8601String(), + 'alergeny': alergeny.map((a) => a.toJson()).toList(), // Assuming Alergen has toJson() + 'orderUrl': orderUrl, + 'burzaUrl': burzaUrl, + }; + + /// Převést z JSON + factory Jidlo.fromJson(Map json) => Jidlo( + nazev: json['nazev'], + kategorizovano: json['kategorizovano'] != null ? JidloKategorizovano.fromJson(json['kategorizovano']) : null, + objednano: json['objednano'], + varianta: json['varianta'], + cena: json['cena'], + lzeObjednat: json['lzeObjednat'], + naBurze: json['naBurze'], + den: DateTime.parse(json['den']), + alergeny: (json['alergeny'] as List).map((a) => Alergen.fromJson(a)).toList(), // Assuming Alergen has fromJson() + orderUrl: json['orderUrl'], + burzaUrl: json['burzaUrl'], + ); } /// Popisuje alergen v jídelníčku @@ -77,6 +125,20 @@ class Alergen { this.kod, this.popis, }); + + /// Převést na JSON + Map toJson() => { + 'kod': kod, + 'nazev': nazev, + 'popis': popis, + }; + + /// Převést z JSON + factory Alergen.fromJson(Map json) => Alergen( + kod: json['kod'], + nazev: json['nazev'], + popis: json['popis'], + ); } enum Features { @@ -150,6 +212,20 @@ class Jidelnicek { this.jidla, { this.vydejny = const {}, }); + + /// Převést na JSON + Map toJson() => { + 'den': den.toIso8601String(), + 'jidla': jidla.map((j) => j.toJson()).toList(), + 'vydejny': vydejny, + }; + + /// Převést z JSON + factory Jidelnicek.fromJson(Map json) => Jidelnicek( + DateTime.parse(json['den']), + (json['jidla'] as List).map((j) => Jidlo.fromJson(j)).toList(), + vydejny: Map.from(json['vydejny']), + ); } /// Reprezentuje informace o přihlášeném uživateli From 38f2816f35480eb600fa5f6fb9bf98a99b195104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Verhaegen?= Date: Wed, 25 Sep 2024 09:57:09 +0200 Subject: [PATCH 03/11] fix test name --- .github/workflows/dart.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index 8c2b689..82286af 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -69,5 +69,5 @@ jobs: echo "USER= '${{ secrets.USER4 }}'" >> .env echo "PASS= '${{ secrets.PASS4 }}'" >> .env - - name: Test pro obedy.ss-stavebnikolin.cz + - name: Test pro jidelna.cza-hu.cz run: dart test From 9724a6a0a1f5997a85336af0076f1c6bcee3ee1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Verhaegen?= Date: Wed, 25 Sep 2024 09:59:55 +0200 Subject: [PATCH 04/11] update changelog & version --- CHANGELOG.md | 4 ++++ pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1037e22..d9dc757 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.0.4 + +- Přidány toJson a fromJson metody + ## 4.0.3 - Hotfix: Opraven oversight kde se ukládaly testovací soubory. diff --git a/pubspec.yaml b/pubspec.yaml index 1e39693..5c87bec 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: canteenlib description: Library for communication with the czech canteen food ordering system iCanteen -version: 4.0.3 +version: 4.0.4 repository: "https://github.com/Autojidelna/canteenlib" issue_tracker: "https://github.com/Autojidelna/canteenlib/issues" From 3783ed8285764d293a996fb3043585242e833379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Verhaegen?= Date: Wed, 25 Sep 2024 10:21:56 +0200 Subject: [PATCH 05/11] update version & repo links --- pubspec.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 5c87bec..f225448 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,8 +1,8 @@ name: canteenlib description: Library for communication with the czech canteen food ordering system iCanteen -version: 4.0.4 -repository: "https://github.com/Autojidelna/canteenlib" -issue_tracker: "https://github.com/Autojidelna/canteenlib/issues" +version: 4.1.0 +repository: "https://github.com/App-Elevate/AUT.canteenlib" +issue_tracker: "https://github.com/App-Elevate/AUT.canteenlib/issues" environment: sdk: ">=2.16.1 <4.0.0" From 30617b017e819751385996f491a3a462384f8e96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Verhaegen?= Date: Wed, 25 Sep 2024 10:22:45 +0200 Subject: [PATCH 06/11] update run name --- .github/workflows/pub-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pub-publish.yml b/.github/workflows/pub-publish.yml index 084ba63..c46620d 100644 --- a/.github/workflows/pub-publish.yml +++ b/.github/workflows/pub-publish.yml @@ -84,7 +84,7 @@ jobs: echo "USER= '${{ secrets.USER4 }}'" >> .env echo "PASS= '${{ secrets.PASS4 }}'" >> .env - - name: Test pro obedy.ss-stavebnikolin.cz + - name: Test pro jidelna.cza-hu.cz run: dart test - name: Removing credentials From 8683bd08d9cba454e43ad242cf619a8d9d9e353c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Verhaegen?= Date: Wed, 25 Sep 2024 10:45:02 +0200 Subject: [PATCH 07/11] update markdown files, to adhere to markdownlint rules - --- CHANGELOG.md | 2 +- COMPATIBILITY.md | 20 ++++++++++---------- Full Compatibility.md | 10 +++++----- README.md | 10 +++++----- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9dc757..7b449f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -78,7 +78,7 @@ ## 1.1.2 -- Opravit negativní čísla v kreditu, účet pro platby by @tpkowastaken in https://github.com/hernikplays/canteenlib/pull/4 +- Opravit negativní čísla v kreditu, účet pro platby by @tpkowastaken in ## 1.1.1 diff --git a/COMPATIBILITY.md b/COMPATIBILITY.md index 8b69753..98e5cbe 100644 --- a/COMPATIBILITY.md +++ b/COMPATIBILITY.md @@ -8,14 +8,14 @@ Kantýny, které v adrese obsahují i číslo portu, dokážou být často probl - ✅ - plně funkční nebo pouze s malými chybami - ❓ - částečně funkční -| Provozovatel | Verze iCanteen | Funkční | Adresa | -| :--------------------------------: | ---------------- | ------- | ----------------------------------- | -| SŠTE Brno | iCanteen 2.19.13 | ✅ | https://stravovani.sstebrno.cz | -| SPŠ Třebíč | iCanteen 2.10.25 | ❌ | https://icanteen.spst.cz | -| SPŠEI Ostrava | iCanteen 2.17.03 | ❌ | https://obedy.spseiostrava.cz:8443/ | -| SOŠ stavební a SOU stavební Kolín | iCanteen 2.10.27 | ✅ | http://obedy.ss-stavebnikolin.cz/ | -| SPŠ a G Na Třebešíně | iCanteen 2.18.03 | ✅ | https://jidelna.trebesin.cz | -| ZŠ Ostrava, Matiční 5 | iCanteen 2.18.19 | ✅ | http://obedy.zs-mat5.cz | -| ČZU v Humpolci | iCanteen 2.16.15 | ✅ | https://jidelna.cza-hu.cz/ | +| Provozovatel | Verze iCanteen | Funkční | Adresa | +| :-------------------------------: | ---------------- | ------- | ------------------------------------- | +| SŠTE Brno | iCanteen 2.19.13 | ✅ | | +| SPŠ Třebíč | iCanteen 2.10.25 | ❌ | | +| SPŠEI Ostrava | iCanteen 2.17.03 | ❌ | | +| SOŠ stavební a SOU stavební Kolín | iCanteen 2.10.27 | ✅ | | +| SPŠ a G Na Třebešíně | iCanteen 2.18.03 | ✅ | | +| ZŠ Ostrava, Matiční 5 | iCanteen 2.18.19 | ✅ | | +| ČZU v Humpolci | iCanteen 2.16.15 | ✅ | | -Pokud chcete přispět s testem, otestujte tuto knihovnu na instanci iCanteen, kde, nejlépe legálně, máte přístup, a nahlašte své poznatky do [github issues](https://github.com/tpkowastaken/icanteenlib/issues/new?assignees=tpkowastaken&labels=kompatibilita&projects=&template=hl--en--kompatibility.md&title=Kompatibilita%3A+) (i pokud fungují prosím) +Pokud chcete přispět s testem, otestujte tuto knihovnu na instanci iCanteen, kde, nejlépe legálně, máte přístup, a nahlašte své poznatky do [github issues](https://github.com/App-Elevate/AUT.canteenlib/issues/new?assignees=tpkowastaken&labels=kompatibilita&projects=&template=hl--en--kompatibility.md&title=Kompatibilita%3A+) (i pokud fungují prosím) diff --git a/Full Compatibility.md b/Full Compatibility.md index 441749c..af1f30d 100644 --- a/Full Compatibility.md +++ b/Full Compatibility.md @@ -8,7 +8,7 @@ ❓ - featura funguje částečně nebo nelze vyzkoušet -# Feature set +## Feature set (featury na otestování u každé verze) @@ -49,7 +49,7 @@ - počet - Výdejny (jiné lokace) -# Spš a G Na Třebešíně - verze 2.18.03 +## Spš a G Na Třebešíně - verze 2.18.03 - Login ✅ - Získej uživatele ✅ @@ -87,7 +87,7 @@ - počet ➖ - Výdejny (jiné lokace) ➖ -# Základní škola Ostrava, Matiční 5 +## Základní škola Ostrava, Matiční 5 - Login ✅ - Získej uživatele ✅ @@ -125,7 +125,7 @@ - počet ➖ - Výdejny (jiné lokace) ➖ -# SOŠ stavební a SOU stavební Kolín +## SOŠ stavební a SOU stavební Kolín - Login ✅ - Získej uživatele ✅ @@ -163,7 +163,7 @@ - zrušit vložení jídla na burzu➖ - Výdejny (jiné lokace) ✅ -# Česká zemědělská akademie v Humpolci +## Česká zemědělská akademie v Humpolci - Login ✅ - Získej uživatele ✅ diff --git a/README.md b/README.md index 1bac321..1823620 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -## O knihovně +# O knihovně Experimentální **neoficiální** webscrape knihovna pro komunikaci se systémem [iCanteen](https://www.z-ware.cz/internetove-objednavky). Tento repozitář je nástupcem [hernik/canteenlib](https://git.mnau.xyz/hernik/canteenlib). @@ -9,21 +9,21 @@ Experimentální **neoficiální** webscrape knihovna pro komunikaci se systéme - Nabídnutí jídla do burzy / zrušení - Získání a objednání cizího jídla z burzy -[Příklad používání](https://github.com/tpkowastaken/canteenlib/blob/main/example/test_everything_example.dart) +[Příklad používání](https://github.com/App-Elevate/AUT.canteenlib/blob/main/example/test_everything_example.dart) _\* Knihovna nemusí fungovat na všech instancích systému iCanteen, proto žádám každého, kdo může a je uživatelem iCanteen, aby otestoval funkčnost této knihovny a případné problémy [nahlásil na github issues](https://github.com/tpkowastaken/icanteenlib/issues/new?assignees=tpkowastaken&labels=kompatibilita&projects=&template=hl--en--kompatibility.md&title=Kompatibilita%3A+)_ -### [Otestované instance iCanteen](https://github.com/tpkowastaken/canteenlib/blob/main/COMPATIBILITY.md) +### [Otestované instance iCanteen](https://github.com/App-Elevate/AUT.canteenlib/blob/main/COMPATIBILITY.md) ## TODO -``` +```cz přepsat na systém parsování html ``` ## Licence -``` +```en MIT License Copyright (c) 2022-2023 Matyáš Caras, Tomáš Protiva and contributors From 3fda17e295d4042a089b23483ad75e68adf5db23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Verhaegen?= Date: Wed, 25 Sep 2024 11:18:09 +0200 Subject: [PATCH 08/11] override == operator and hashcode getter in custom classes --- lib/src/tridy.dart | 152 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 151 insertions(+), 1 deletion(-) diff --git a/lib/src/tridy.dart b/lib/src/tridy.dart index b57ee77..15e0ef0 100644 --- a/lib/src/tridy.dart +++ b/lib/src/tridy.dart @@ -30,6 +30,21 @@ class JidloKategorizovano { piti: json['piti'], ostatni: json['ostatni'], ); + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + + return other is JidloKategorizovano && + other.polevka == polevka && + other.hlavniJidlo == hlavniJidlo && + other.salatovyBar == salatovyBar && + other.piti == piti && + other.ostatni == ostatni; + } + + @override + int get hashCode => polevka.hashCode ^ hlavniJidlo.hashCode ^ salatovyBar.hashCode ^ piti.hashCode ^ ostatni.hashCode; } /// Reprezentuje jedno jídlo z jídelníčku @@ -112,6 +127,51 @@ class Jidlo { orderUrl: json['orderUrl'], burzaUrl: json['burzaUrl'], ); + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + + return other is Jidlo && + other.nazev == nazev && + other.kategorizovano == kategorizovano && + other.objednano == objednano && + other.varianta == varianta && + other.cena == cena && + other.lzeObjednat == lzeObjednat && + other.naBurze == naBurze && + other.den == den && + _porovnatAlergenyList(other.alergeny, alergeny) && + other.orderUrl == orderUrl && + other.burzaUrl == burzaUrl; + } + + bool _porovnatAlergenyList(List list1, List list2) { + if (list1.length != list2.length) return false; + for (int i = 0; i < list1.length; i++) { + if (list1[i] != list2[i]) return false; + } + return true; + } + + @override + int get hashCode => + nazev.hashCode ^ + kategorizovano.hashCode ^ + objednano.hashCode ^ + varianta.hashCode ^ + cena.hashCode ^ + lzeObjednat.hashCode ^ + naBurze.hashCode ^ + den.hashCode ^ + _generovatAlergenyListHashCode(alergeny) ^ + orderUrl.hashCode ^ + burzaUrl.hashCode; + + // Generuje hashcode pro List + int _generovatAlergenyListHashCode(List list) { + return list.fold(0, (prev, element) => prev ^ element.hashCode); + } } /// Popisuje alergen v jídelníčku @@ -121,8 +181,8 @@ class Alergen { final String? popis; const Alergen({ - required this.nazev, this.kod, + required this.nazev, this.popis, }); @@ -139,6 +199,16 @@ class Alergen { nazev: json['nazev'], popis: json['popis'], ); + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + + return other is Alergen && other.kod == kod && other.nazev == nazev && other.popis == popis; + } + + @override + int get hashCode => kod.hashCode ^ nazev.hashCode ^ popis.hashCode; } enum Features { @@ -194,6 +264,16 @@ class Burza { required this.pocet, this.varianta, }); + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + + return other is Burza && other.den == den && other.url == url && other.nazev == nazev && other.varianta == varianta && other.pocet == pocet; + } + + @override + int get hashCode => den.hashCode ^ url.hashCode ^ nazev.hashCode ^ varianta.hashCode ^ pocet.hashCode; } /// Reprezentuje jídelníček pro jeden den @@ -226,6 +306,40 @@ class Jidelnicek { (json['jidla'] as List).map((j) => Jidlo.fromJson(j)).toList(), vydejny: Map.from(json['vydejny']), ); + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + + return other is Jidelnicek && other.den == den && _porovnatJidlaList(other.jidla, jidla) && _porovnatVydejnyMap(other.vydejny, vydejny); + } + + bool _porovnatJidlaList(List list1, List list2) { + if (list1.length != list2.length) return false; + for (int i = 0; i < list1.length; i++) { + if (list1[i] != list2[i]) return false; + } + return true; + } + + bool _porovnatVydejnyMap(Map map1, Map map2) { + if (map1.length != map2.length) return false; + for (var key in map1.keys) { + if (map1[key] != map2[key]) return false; + } + return true; + } + + @override + int get hashCode => den.hashCode ^ _generovatListHashCode(jidla) ^ _generovatMapHashCode(vydejny); + + int _generovatListHashCode(List list) { + return list.fold(0, (prev, element) => prev ^ element.hashCode); + } + + int _generovatMapHashCode(Map map) { + return map.entries.fold(0, (prev, entry) => prev ^ entry.key.hashCode ^ entry.value.hashCode); + } } /// Reprezentuje informace o přihlášeném uživateli @@ -264,6 +378,32 @@ class Uzivatel { this.kredit = 0.0, this.specSymbol, }); + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + + return other is Uzivatel && + other.uzivatelskeJmeno == uzivatelskeJmeno && + other.jmeno == jmeno && + other.prijmeni == prijmeni && + other.kategorie == kategorie && + other.ucetProPlatby == ucetProPlatby && + other.varSymbol == varSymbol && + other.kredit == kredit && + other.specSymbol == specSymbol; + } + + @override + int get hashCode => + uzivatelskeJmeno.hashCode ^ + jmeno.hashCode ^ + prijmeni.hashCode ^ + kategorie.hashCode ^ + ucetProPlatby.hashCode ^ + varSymbol.hashCode ^ + kredit.hashCode ^ + specSymbol.hashCode; } class LoginData { @@ -274,4 +414,14 @@ class LoginData { this.username, this.password, ); + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + + return other is LoginData && other.username == username && other.password == password; + } + + @override + int get hashCode => username.hashCode ^ password.hashCode; } From 198c67272307fff1b136b1922156669694cf07ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Verhaegen?= Date: Wed, 25 Sep 2024 11:18:31 +0200 Subject: [PATCH 09/11] add test for toJson() and fromJson() --- test/canteenlib_test.dart | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/canteenlib_test.dart b/test/canteenlib_test.dart index 9cd055c..89efba6 100644 --- a/test/canteenlib_test.dart +++ b/test/canteenlib_test.dart @@ -145,6 +145,15 @@ void main() { await ziskatJidelnicek(); expect((await jidelnicek!).jidla[0].alergeny.isNotEmpty, true); }); + + test('Jídelníček toJson() a fromJson()', () async { + await prihlasitSe(); + if (canteenInstance!.missingFeatures.contains(Features.jidelnicekDen)) return; + await ziskatJidelnicek(); + Jidelnicek? localJidelnicek = await jidelnicek; + if (localJidelnicek == null) return; + expect(localJidelnicek == Jidelnicek.fromJson(localJidelnicek.toJson()), true); + }); }); group('Jídelníček, druhá výdejna:', () { test('Jídelníček má více výdejen', () async { From 39336f9ef35e8afe8ba4e980519b1b33a7c3eac2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Verhaegen?= Date: Wed, 25 Sep 2024 11:21:40 +0200 Subject: [PATCH 10/11] chore: changelog.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b449f7..6460923 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## 4.0.4 +## 4.1.0 - Přidány toJson a fromJson metody From 9bc081a9f4d68649950b85e61ebf41502c22f7f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Verhaegen?= Date: Wed, 25 Sep 2024 11:32:41 +0200 Subject: [PATCH 11/11] remove tests for jidelna.cza-hu.cz --- .github/workflows/dart.yml | 14 +++++++------- .github/workflows/pub-publish.yml | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index 82286af..883e31c 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -63,11 +63,11 @@ jobs: run: dart test # Testing pro jidelna.cza-hu.cz - - name: Credentials pro jidelna.cza-hu.cz - run: | - echo "URL= 'jidelna.cza-hu.cz'" > .env - echo "USER= '${{ secrets.USER4 }}'" >> .env - echo "PASS= '${{ secrets.PASS4 }}'" >> .env + #- name: Credentials pro jidelna.cza-hu.cz + # run: | + # echo "URL= 'jidelna.cza-hu.cz'" > .env + # echo "USER= '${{ secrets.USER4 }}'" >> .env + # echo "PASS= '${{ secrets.PASS4 }}'" >> .env - - name: Test pro jidelna.cza-hu.cz - run: dart test + #- name: Test pro jidelna.cza-hu.cz + # run: dart test diff --git a/.github/workflows/pub-publish.yml b/.github/workflows/pub-publish.yml index c46620d..6657294 100644 --- a/.github/workflows/pub-publish.yml +++ b/.github/workflows/pub-publish.yml @@ -78,14 +78,14 @@ jobs: run: dart test # Testing pro jidelna.cza-hu.cz - - name: Credentials pro jidelna.cza-hu.cz - run: | - echo "URL= 'jidelna.cza-hu.cz'" > .env - echo "USER= '${{ secrets.USER4 }}'" >> .env - echo "PASS= '${{ secrets.PASS4 }}'" >> .env + #- name: Credentials pro jidelna.cza-hu.cz + # run: | + # echo "URL= 'jidelna.cza-hu.cz'" > .env + # echo "USER= '${{ secrets.USER4 }}'" >> .env + # echo "PASS= '${{ secrets.PASS4 }}'" >> .env - - name: Test pro jidelna.cza-hu.cz - run: dart test + #- name: Test pro jidelna.cza-hu.cz + # run: dart test - name: Removing credentials run: rm -rf .env