Jaunos koda labojumus lūdzu liec failos ar prefix 8_
Pirmais JS/TS call ārpus async funkcijām ir bez await, await var izmantot tikai async funkcijās un tikai tad, kad ir kāda darbība, kuras izpilde nenotiek uzreiz (saņem Promise objektu kā atbildi, async funkcijas arī ģenerē promise objektu)
Vai nu jāizmanto papildus mainīgie piemēram LOGIN_KRISTIANA_DEV_USERNAME
vai arī indeksi 0, 1 utt jāatšifrē izmantojot konstantes piemēram EMAIL[IDX_KRISTIANA_DEV_USER]
, kur const IDX_KRISTIANA_DEV_USER = 1;
Webstorm iekrāso un funkciju beigās neliek klāt ;
jāsaliek vairāk console.log ar jēgpilniem tekstiņiem
Tā vietā, lai izmantotu uz spaces balstītu XPath izmantot [contains(text(),'Change Metrics')]
Bug - for loop, lai kontrolētu izpildi var lietot continue
, kas pārleks pāri nākamajam ierakstam vai break
, kas izies no loop, bet nevar lietot return
. Katrai funkcijai jābūt vienam return beigās, ja funkcija kaut ko atgriež (visai lielai funkcijai kā change_metric_filtering)
Konstantes ar lieliem burtiem rakstam (šeit piemēri kodēšanas standartiem: https://evalds.notion.site/TypeScript-JavaScript-SQL-Coding-standard-a5726efa2ac54f20b248da9eb32cee5d)
For loop problēmas, sk. iepriekšējos komentārus
Mainīgie eksistē viena scope ietvaros tikai { }
Jābūt kādam safety check, piemēram, ja while atkārtojas 100 reizes tad iziet, lai neiekārtos mūžīgā ciklā
7_test_tasks diezgan labs, bet tur pietrūkst vairākās vietās await funkcijām, kuras atgriež promise, rezultātā nav garentāts, ka poga būs nospiesta nākamajā rindiņā. pietrūkst arī logging informācija un nav iedots beigās testa rezultāts, vai bija veiksmīgs?
Pieinstalē jest
bibliotēku pēc pamācības un sagatavo webstorm, ka 8_ testi dod konsolē lasāmu rezultātu:
https://www.jetbrains.com/help/webstorm/running-unit-tests-on-jest.html#ws_jest_running_tests
https://blog.jetbrains.com/webstorm/2018/10/testing-with-jest-in-webstorm/
Sagatavot testus, lai atapazītu iepriekš ziņotās sarunās:
Smieklus
Positive voice marķierus
Emocijas - happiness, anger, saddness, jo informāciju jāņem nevis no vizuāliem datiem, bet no conv
dictionary, kurš ir pieejams lapā pēc ielādes (pauls var paskaidrot struktūru, bet doma būtu “vai 11sekundē ir pozitīva balss vai negatīva?”)
let conv = await page.evaluate("conv");
Lai būtu redzami visi testi, kas veiksmīgi un neveiksmīgi un kāpēc
Tā kā var būt vairāki reprocessing runs, tad man ir jāpārbauda tikai 1. (pēdējais veiktais). Es mēģināju, ko šādu, bet tas nestrādāja:
xxxxxxxxxx
11const [p_tag] = await page.$x('//*[@id="admin_panel"]/div//div[@class="side_panel_body"]//p[@class="api_tasks"]')[1];
[1]
daļa laikam radīja error
^ jā, jo tu jau lieto const [p_tag]
tas ir JS dīvains pieraksts, kas ļauj atvērt masīvus, ja tu rakstītu ( await page.$x('//*[@id="admin_panel"]/div//div[@class="side_panel_body"]//p[@class="api_tasks"]'))[0]
tad strādātu
Ievēro, ka es lietoju papildus iekavas, jo mums vajag await rezultātu nevis Promise pointeri pirms await
šeti vēl piemērs par masīvu atvēršanu
xxxxxxxxxx
71const some = [1, 2, 3, 4];
2const [a, b, c, d ] = some;
3// tas pats kas
4a = some[0]
5b = some[1]
6c = some[2]
7d = some[3]
I can't get rid of this one bug:
Lai varētu izmantot vērtības, kuras tiek atgrieztas no funkcijas tas ir jāuzkodē, nevar izmantot citas funkcijas mainīgos, pat ja funkcija tikko izsaukta , visi mainīgie dzīvo savā scope { }
Tāpēc, ka p_tag ir elements, bet pats saturs ir iekš /text()
ja izmanto ar XPath vai arī p_tag.text
iekš JS