@suffolklitlab/alkiln 4.10.0 → 4.10.1-pre-cli
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/test_tests.yml +6 -4
- package/CHANGELOG.md +15 -1
- package/MANIFEST.in +1 -0
- package/_alkiln-misc_artifacts/unit_tests_logs-2022-12-29 at 02h22m01s457ms UTC.txt +20 -0
- package/action.yml +7 -34
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Base64 encoded corner cases are decoded correctly-2022-12-29 at 02h12m20s302ms UTC/report.txt +23 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail to find var while keeping value secret-2022-12-29 at 02h14m21s556ms UTC/report.txt +13 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with 2 wrong signin secret names-2022-12-29 at 02h14m19s733ms UTC/report.txt +12 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with a missing phrase-2022-12-29 at 02h13m42s632ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with cannot find missing document-2022-12-29 at 02h14m13s528ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with could not find files-2022-12-29 at 02h14m20s192ms UTC/report.txt +13 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with error page from random input-2022-12-29 at 02h13m27s716ms UTC/random_answers_screenshots-2022-12-29 at 02h13m28s915ms UTC/random-1672280009244.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with error page from random input-2022-12-29 at 02h13m27s716ms UTC/report.txt +12 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with incorrectly present phrase-2022-12-29 at 02h13m43s918ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with link text not visible-2022-12-29 at 02h13m52s649ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with link unexpectedly opens in a new window-2022-12-29 at 02h14m06s008ms UTC/report.txt +56 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with link unexpectedly opens in same window-2022-12-29 at 02h14m01s128ms UTC/report.txt +56 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with link with given text does not lead to correct url-2022-12-29 at 02h13m55s993ms UTC/report.txt +56 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with missing element id-2022-12-29 at 02h13m45s207ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with missing error message-2022-12-29 at 02h13m48s710ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with missing link with url-2022-12-29 at 02h13m54s329ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with missing term with the given text-2022-12-29 at 02h14m12s071ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with no interview at arbitrary url-2022-12-29 at 02h11m01s999ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with system error after Step using wrong file name as trigger-2022-12-29 at 02h14m15s021ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with unexpectedly able to continue-2022-12-29 at 02h13m46s819ms UTC/report.txt +11 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with var not on page-2022-12-29 at 02h14m10s627ms UTC/report.txt +12 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with was unexpectedly not able to continue for invalid field input message-2022-12-29 at 02h13m50s143ms UTC/report.txt +13 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with wrong email secret name-2022-12-29 at 02h14m18s763ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fail with wrong password secret name-2022-12-29 at 02h14m19s291ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fails as it doesn't try to 'continue' with a restart button-2022-12-29 at 02h12m22s559ms UTC/report.txt +19 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fails when table has no header row and rows have only one column-2022-12-29 at 02h14m50s261ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Fields are listed out of order-2022-12-29 at 02h14m55s580ms UTC/report.txt +103 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I am able to set a custom wait time before an interview has been loaded-2022-12-29 at 02h10m12s300ms UTC/report.txt +6 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I am able to set a custom wait time that allows steps to run longer than the half minute default-2022-12-29 at 02h09m35s267ms UTC/report.txt +6 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I answer randomly till the end twice-2022-12-29 at 02h13m19s494ms UTC/random_answers_screenshots-2022-12-29 at 02h13m20s448ms UTC/random-1672280001009.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I answer randomly till the end twice-2022-12-29 at 02h13m19s494ms UTC/random_answers_screenshots-2022-12-29 at 02h13m20s448ms UTC/random-1672280001551.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I answer randomly till the end twice-2022-12-29 at 02h13m19s494ms UTC/random_answers_screenshots-2022-12-29 at 02h13m20s448ms UTC/random-1672280002244.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I answer randomly till the end twice-2022-12-29 at 02h13m19s494ms UTC/random_answers_screenshots-2022-12-29 at 02h13m20s448ms UTC/random-1672280003073.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I answer randomly till the end twice-2022-12-29 at 02h13m19s494ms UTC/random_answers_screenshots-2022-12-29 at 02h13m20s448ms UTC/random-1672280003428.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I answer randomly till the end twice-2022-12-29 at 02h13m19s494ms UTC/random_answers_screenshots-2022-12-29 at 02h13m24s217ms UTC/random-1672280004868.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I answer randomly till the end twice-2022-12-29 at 02h13m19s494ms UTC/random_answers_screenshots-2022-12-29 at 02h13m24s217ms UTC/random-1672280005425.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I answer randomly till the end twice-2022-12-29 at 02h13m19s494ms UTC/random_answers_screenshots-2022-12-29 at 02h13m24s217ms UTC/random-1672280006159.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I answer randomly till the end twice-2022-12-29 at 02h13m19s494ms UTC/random_answers_screenshots-2022-12-29 at 02h13m24s217ms UTC/random-1672280007028.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I answer randomly till the end twice-2022-12-29 at 02h13m19s494ms UTC/random_answers_screenshots-2022-12-29 at 02h13m24s217ms UTC/random-1672280007371.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I answer randomly till the end twice-2022-12-29 at 02h13m19s494ms UTC/report.txt +21 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I can include .yml in the filename-2022-12-29 at 02h12m39s613ms UTC/report.txt +6 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I can match JSON page var to str-2022-12-29 at 02h12m57s106ms UTC/json_for-showifs-2022-12-29 at 02h12m59s731ms UTC.json +154 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I can match JSON page var to str-2022-12-29 at 02h12m57s106ms UTC/report.txt +33 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I can wait as a first step in a test-2022-12-29 at 02h10m50s651ms UTC/report.txt +5 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I can't match JSON page var to str-2022-12-29 at 02h14m16s014ms UTC/json_for-showifs-2022-12-29 at 02h14m18s373ms UTC.json +154 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I can't match JSON page var to str-2022-12-29 at 02h14m16s014ms UTC/report.txt +37 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I check navigation-2022-12-29 at 02h12m41s028ms UTC/report.txt +54 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I check the pages for accessibility-2022-12-29 at 02h13m02s923ms UTC/report.txt +58 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I fill in random input for 1 page-2022-12-29 at 02h13m17s219ms UTC/random_answers_screenshots-2022-12-29 at 02h13m18s174ms UTC/random-1672279998764.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I fill in random input for 1 page-2022-12-29 at 02h13m17s219ms UTC/report.txt +7 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I fill in random input till the end-2022-12-29 at 02h13m12s258ms UTC/random_answers_screenshots-2022-12-29 at 02h13m13s676ms UTC/random-1672279994312.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I fill in random input till the end-2022-12-29 at 02h13m12s258ms UTC/random_answers_screenshots-2022-12-29 at 02h13m13s676ms UTC/random-1672279994892.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I fill in random input till the end-2022-12-29 at 02h13m12s258ms UTC/random_answers_screenshots-2022-12-29 at 02h13m13s676ms UTC/random-1672279995594.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I fill in random input till the end-2022-12-29 at 02h13m12s258ms UTC/random_answers_screenshots-2022-12-29 at 02h13m13s676ms UTC/random-1672279996542.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I fill in random input till the end-2022-12-29 at 02h13m12s258ms UTC/random_answers_screenshots-2022-12-29 at 02h13m13s676ms UTC/random-1672279996887.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I fill in random input till the end-2022-12-29 at 02h13m12s258ms UTC/report.txt +13 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I get the page's JSON-2022-12-29 at 02h13m00s023ms UTC/report.txt +71 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I have four name parts-2022-12-29 at 02h09m31s566ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I have three name parts-2022-12-29 at 02h09m27s653ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I have two name parts-2022-12-29 at 02h09m21s065ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I observe things on a single page when I arrive-2022-12-29 at 02h12m35s237ms UTC/report.txt +7 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I see user errors_-2022-12-29 at 02h12m37s167ms UTC/report.txt +9 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I set various values-2022-12-29 at 02h11m10s659ms UTC/report.txt +58 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I set various values-2022-12-29 at 02h11m10s659ms UTC/simple-doc.pdf +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I sign in-2022-12-29 at 02h10m54s349ms UTC/report.txt +7 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I take a screenshot-2022-12-29 at 02h13m01s434ms UTC/report.txt +6 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I take a screenshot-2022-12-29 at 02h13m01s434ms UTC/screenshot-some-screenshot-on-upload-files-2022-12-29 at 02h13m02s597ms UTC.jpg +0 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I upload files with a table-2022-12-29 at 02h15m13s490ms UTC/report.txt +19 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/I want to go to a full arbitrary url-2022-12-29 at 02h10m58s362ms UTC/report.txt +6 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Interview name includes url args with a wait-2022-12-29 at 02h10m52s195ms UTC/report.txt +6 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Interview name includes url args-2022-12-29 at 02h10m48s849ms UTC/report.txt +6 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Latin-Fail with missing language link-2022-12-29 at 02h13m40s278ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Latin-Fail with wrong page id-2022-12-29 at 02h13m41s379ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Proxy and regular vars are mixed-2022-12-29 at 02h14m51s648ms UTC/report.txt +35 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Report doesn't complain about `there_is_another _ False` in a table_-2022-12-29 at 02h14m36s652ms UTC/report.txt +16 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Report lists unused table rows-2022-12-29 at 02h14m29s563ms UTC/report.txt +65 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Report still shows page id when I tap to continue without setting any fields-2022-12-29 at 02h14m25s620ms UTC/report.txt +22 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Server finishes reloading-2022-12-29 at 02h11m08s477ms UTC/report.txt +6 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Sign in to server successfully-2022-12-29 at 02h14m34s127ms UTC/report.txt +6 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Story table accidentally uses the opposite double or single quotes-2022-12-29 at 02h15m11s462ms UTC/report.txt +18 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Table MISSING trigger column-2022-12-29 at 02h14m41s898ms UTC/report.txt +33 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Table has no header row, MISSING trigger column-2022-12-29 at 02h14m47s483ms UTC/report.txt +33 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Table has no header row, has trigger column-2022-12-29 at 02h14m44s776ms UTC/report.txt +37 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Table has trigger column-2022-12-29 at 02h14m39s081ms UTC/report.txt +37 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Test _Then I cannot continue_-2022-12-29 at 02h12m48s119ms UTC/report.txt +9 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Test _Then I can/342/200/231t continue_ with an apostrophe-2022-12-29 at 02h12m52s553ms UTC/report.txt" +9 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Test _Then I do not continue_-2022-12-29 at 02h12m50s316ms UTC/report.txt +9 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Test _Then I don't continue_ with a single quote-2022-12-29 at 02h12m45s907ms UTC/report.txt +9 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Test _Then I don/342/200/231t continue_ with an apostrophe-2022-12-29 at 02h12m54s800ms UTC/report.txt" +9 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/Warn when there are too many names-2022-12-29 at 02h14m22s722ms UTC/report.txt +8 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/debug_log.txt +2373 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/handles settings from Github secrets-2022-12-29 at 02h12m13s413ms UTC/report.txt +19 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/report.txt +1439 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/tap element with an error-2022-12-29 at 02h12m18s853ms UTC/report.txt +10 -0
- package/alkiln-2022-12-29 at 02h09m19s552ms UTC/tap elements-2022-12-29 at 02h12m16s677ms UTC/report.txt +6 -0
- package/alkiln-2023-01-11 at 19h24m55s354ms UTC/I set various values-2023-01-11 at 19h24m56s530ms UTC/report.txt +27 -0
- package/alkiln-2023-01-11 at 19h24m55s354ms UTC/I set various values-2023-01-11 at 19h25m07s611ms UTC/report.txt +27 -0
- package/alkiln-2023-01-11 at 19h24m55s354ms UTC/debug_log.txt +262 -0
- package/alkiln-2023-01-11 at 19h24m55s354ms UTC/report.txt +60 -0
- package/alkiln-2023-01-11 at 19h50m26s510ms UTC/debug_log.txt +224 -0
- package/alkiln-2023-01-11 at 19h50m26s510ms UTC/report.txt +22 -0
- package/alkiln-2023-01-11 at 19h53m45s106ms UTC/I set various values-2023-01-11 at 19h53m46s085ms UTC/report.txt +27 -0
- package/alkiln-2023-01-11 at 19h53m45s106ms UTC/I set various values-2023-01-11 at 19h53m57s482ms UTC/report.txt +27 -0
- package/alkiln-2023-01-11 at 19h53m45s106ms UTC/debug_log.txt +261 -0
- package/alkiln-2023-01-11 at 19h53m45s106ms UTC/report.txt +60 -0
- package/cucumber.js +1 -1
- package/docassemble/__init__.py +5 -0
- package/lib/run_cucumber.js +96 -0
- package/lib/scope.js +45 -28
- package/lib/steps.js +1 -1
- package/lib/utils/files.js +1 -1
- package/lib/utils/session_vars.js +5 -3
- package/package.json +8 -9
- package/setup.py +60 -0
- package/tests/features/assembly_line.feature +0 -43
- package/tests/features/establishing_steps.feature +0 -62
- package/tests/features/example_test.feature +0 -11
- package/tests/features/interactive_steps.feature +0 -166
- package/tests/features/observation_steps.feature +0 -153
- package/tests/features/random_input.feature +0 -31
- package/tests/features/reload.feature +0 -155
- package/tests/features/reports.feature +0 -557
- package/tests/features/some_png_1.png +0 -0
- package/tests/features/some_png_2.png +0 -0
- package/tests/features/story_table_formats.feature +0 -125
- package/tests/features/story_tables.feature +0 -91
package/package.json
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@suffolklitlab/alkiln",
|
|
3
|
-
"version": "4.10.
|
|
3
|
+
"version": "4.10.1-pre-cli",
|
|
4
4
|
"description": "Integrated automated end-to-end testing with docassemble, puppeteer, and cucumber.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"test": "npm run unit && npm run langs_setup && npm run cucumber -- $@",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"langs": "npm run langs_setup && ./node_modules/.bin/cucumber-js --require ./lib/index.js tests/features/*_lang*.feature",
|
|
12
|
-
"langs_setup": "./lib/utils/langs.js 'tests/features/*.feature'",
|
|
8
|
+
"cucumber": "./lib/run_cucumber.js",
|
|
9
|
+
"langs": "npm run langs_setup && ./node_modules/.bin/cucumber-js --require ./lib/index.js docassemble/*/data/sources/*_lang*.feature",
|
|
10
|
+
"langs_setup": "./lib/utils/langs.js 'docassemble/*/data/sources/*.feature'",
|
|
13
11
|
"langs_local": "npm run langs_setup && npm run local",
|
|
14
12
|
"local": "npm run setup && npm run cucumber; npm run takedown",
|
|
15
13
|
"setup": "./lib/docassemble/setup.js",
|
|
@@ -36,13 +34,13 @@
|
|
|
36
34
|
"homepage": "https://suffolklitlab.org/docassemble-AssemblyLine-documentation/docs/automated_integrated_testing/",
|
|
37
35
|
"dependencies": {
|
|
38
36
|
"@axe-core/puppeteer": "4.4.2",
|
|
39
|
-
"@cucumber/cucumber": "
|
|
37
|
+
"@cucumber/cucumber": "8.6.0",
|
|
40
38
|
"@faker-js/faker": "^7.3.0",
|
|
41
39
|
"axios": "0.24.0",
|
|
42
40
|
"chai": "4.2.0",
|
|
43
41
|
"cheerio": "1.0.0-rc.10",
|
|
44
|
-
"dotenv": "8.2.0",
|
|
45
42
|
"deep-equal-in-any-order": "^2.0.0",
|
|
43
|
+
"dotenv": "8.2.0",
|
|
46
44
|
"mocha": "9.2.0",
|
|
47
45
|
"puppeteer": "13.1.3",
|
|
48
46
|
"qs": "6.10.2",
|
|
@@ -52,6 +50,7 @@
|
|
|
52
50
|
"bin": {
|
|
53
51
|
"alkiln-setup": "./lib/docassemble/setup.js",
|
|
54
52
|
"alkiln-takedown": "./lib/docassemble/takedown.js",
|
|
55
|
-
"alkiln-langs": "./lib/utils/langs.js"
|
|
53
|
+
"alkiln-langs": "./lib/utils/langs.js",
|
|
54
|
+
"alkiln-run": "./lib/run_cucumber.js"
|
|
56
55
|
}
|
|
57
56
|
}
|
package/setup.py
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
from setuptools import setup, find_packages
|
|
4
|
+
from fnmatch import fnmatchcase
|
|
5
|
+
from distutils.util import convert_path
|
|
6
|
+
|
|
7
|
+
standard_exclude = ('*.pyc', '*~', '.*', '*.bak', '*.swp*')
|
|
8
|
+
standard_exclude_directories = ('.*', 'CVS', '_darcs', './build', './dist', 'EGG-INFO', '*.egg-info')
|
|
9
|
+
def find_package_data(where='.', package='', exclude=standard_exclude, exclude_directories=standard_exclude_directories):
|
|
10
|
+
out = {}
|
|
11
|
+
stack = [(convert_path(where), '', package)]
|
|
12
|
+
while stack:
|
|
13
|
+
where, prefix, package = stack.pop(0)
|
|
14
|
+
for name in os.listdir(where):
|
|
15
|
+
fn = os.path.join(where, name)
|
|
16
|
+
if os.path.isdir(fn):
|
|
17
|
+
bad_name = False
|
|
18
|
+
for pattern in exclude_directories:
|
|
19
|
+
if (fnmatchcase(name, pattern)
|
|
20
|
+
or fn.lower() == pattern.lower()):
|
|
21
|
+
bad_name = True
|
|
22
|
+
break
|
|
23
|
+
if bad_name:
|
|
24
|
+
continue
|
|
25
|
+
if os.path.isfile(os.path.join(fn, '__init__.py')):
|
|
26
|
+
if not package:
|
|
27
|
+
new_package = name
|
|
28
|
+
else:
|
|
29
|
+
new_package = package + '.' + name
|
|
30
|
+
stack.append((fn, '', new_package))
|
|
31
|
+
else:
|
|
32
|
+
stack.append((fn, prefix + name + '/', package))
|
|
33
|
+
else:
|
|
34
|
+
bad_name = False
|
|
35
|
+
for pattern in exclude:
|
|
36
|
+
if (fnmatchcase(name, pattern)
|
|
37
|
+
or fn.lower() == pattern.lower()):
|
|
38
|
+
bad_name = True
|
|
39
|
+
break
|
|
40
|
+
if bad_name:
|
|
41
|
+
continue
|
|
42
|
+
out.setdefault(package, []).append(prefix+name)
|
|
43
|
+
return out
|
|
44
|
+
|
|
45
|
+
setup(name='docassemble.ALKilnTests',
|
|
46
|
+
version='1.0.0',
|
|
47
|
+
description=('A docassemble extension for testing the ALKiln integrated testing framework.'),
|
|
48
|
+
long_description='# ALKiln support package\r\n\r\nAssembly Line Kiln (ALKiln) is a framework for automatically testing **any** [docassemble](https://docassemble.org/) package using GitHub. ALKiln is being developed as part of the SuffolkLITLab Document Assembly Line project. See [documentation for kiln](https://suffolklitlab.github.io/docassemble-AssemblyLine-documentation/docs/automated_integrated_testing).\r\n\r\nThis package supports ALKiln in different ways.\r\n\r\n## Tool to set up testing\r\n\r\n[Tap here to set up automated integrated testing for your docassemble interview](https://apps-dev.suffolklitlab.org/start/test-setup/).\r\n\r\nThis repo contains a step-by-step form that a developer can use to set up automated integrated testing for **any** docassemble package. It requires, among other things, a docassemble account and a temporary GitHub personal access token with correct permissions. It will add necessary GitHub secrets, make a new branch, push necessary files to that branch, and make a PR with that branch.\r\n\r\n',
|
|
49
|
+
long_description_content_type='text/markdown',
|
|
50
|
+
author='plocket',
|
|
51
|
+
author_email='example@example.com',
|
|
52
|
+
license='The MIT License (MIT)',
|
|
53
|
+
url='https://suffolklitlab.org/docassemble-AssemblyLine-documentation/docs/automated_integrated_testing',
|
|
54
|
+
packages=find_packages(),
|
|
55
|
+
namespace_packages=['docassemble'],
|
|
56
|
+
install_requires=['docassemble.ALToolbox>=0.5.1'],
|
|
57
|
+
zip_safe=False,
|
|
58
|
+
package_data=find_package_data(where='docassemble/ALKilnTests/', package='docassemble.ALKilnTests'),
|
|
59
|
+
)
|
|
60
|
+
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
@assembly_line
|
|
2
|
-
Feature: Assembly Line package-specific Steps
|
|
3
|
-
|
|
4
|
-
# In tag names, 'al' is for 'assembly line'
|
|
5
|
-
|
|
6
|
-
# Note: the first test for this suite is the first test in this file and we're having timeout issues, so we're trying to give the server longer to load.
|
|
7
|
-
|
|
8
|
-
@fast @al1
|
|
9
|
-
Scenario: I have two name parts
|
|
10
|
-
Given the max secs for each step is 120
|
|
11
|
-
Given I start the interview at "AL_tests"
|
|
12
|
-
And I set the name of "users[0]" to "Uli User"
|
|
13
|
-
And I tap to continue
|
|
14
|
-
And I set the address of "users[0]" to "120 Tremont Street, Unit 2, Boston, MA 02108"
|
|
15
|
-
And I tap to continue
|
|
16
|
-
And I set the name of "users[1]" to "Uli2 User2"
|
|
17
|
-
And I set the var "users[i].proxy_var" to "Mixed proxy var step test"
|
|
18
|
-
And I tap to continue
|
|
19
|
-
Then the question id should be "end"
|
|
20
|
-
|
|
21
|
-
@fast @al2
|
|
22
|
-
Scenario: I have three name parts
|
|
23
|
-
Given I start the interview at "AL_tests"
|
|
24
|
-
And I set the name of "users[0]" to "Uli Udo User"
|
|
25
|
-
And I tap to continue
|
|
26
|
-
And I set the address of "users[0]" to "120 Tremont Street, Unit 2, Boston, MA 02108"
|
|
27
|
-
And I tap to continue
|
|
28
|
-
And I set the name of "users[1]" to "Uli2 User2"
|
|
29
|
-
And I set the var "users[i].proxy_var" to "Mixed proxy var step test"
|
|
30
|
-
And I tap to continue
|
|
31
|
-
Then the question id should be "end"
|
|
32
|
-
|
|
33
|
-
@fast @al3
|
|
34
|
-
Scenario: I have four name parts
|
|
35
|
-
Given I start the interview at "AL_tests"
|
|
36
|
-
And I set the name of "users[0]" to "Uli Udo User Sr"
|
|
37
|
-
And I tap to continue
|
|
38
|
-
And I set the address of "users[0]" to "120 Tremont Street, Unit 2, Boston, MA 02108"
|
|
39
|
-
And I tap to continue
|
|
40
|
-
And I set the name of "users[1]" to "Uli2 User2"
|
|
41
|
-
And I set the var "users[i].proxy_var" to "Mixed proxy var step test"
|
|
42
|
-
And I tap to continue
|
|
43
|
-
Then the question id should be "end"
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
@establishing
|
|
2
|
-
Feature: Establishing steps
|
|
3
|
-
|
|
4
|
-
Steps that establish things about the state of the test
|
|
5
|
-
# In tag names, 'e' is for 'establishing'
|
|
6
|
-
|
|
7
|
-
@slow @e1 @wait
|
|
8
|
-
Scenario: I am able to set a custom wait time that allows steps to run longer than the half minute default
|
|
9
|
-
Given I start the interview at "all_tests"
|
|
10
|
-
And the max seconds for each step in this scenario is 40
|
|
11
|
-
And I wait 35 seconds
|
|
12
|
-
|
|
13
|
-
@slow @e2 @wait
|
|
14
|
-
Scenario: I am able to set a custom wait time before an interview has been loaded
|
|
15
|
-
Given the max seconds for each step in this scenario is 40
|
|
16
|
-
And I start the interview at "all_tests"
|
|
17
|
-
And I wait 35 seconds
|
|
18
|
-
|
|
19
|
-
@fast @e3 @urlargs
|
|
20
|
-
Scenario: Interview name includes url args
|
|
21
|
-
Given I start the interview at "url_args.yml&from=theinternets&random=zoo"
|
|
22
|
-
Then I should see the phrase "zoo"
|
|
23
|
-
|
|
24
|
-
@slow @e4 @wait_first
|
|
25
|
-
Scenario: I can wait as a first step in a test
|
|
26
|
-
Given I wait 1 second
|
|
27
|
-
|
|
28
|
-
@slow @e5 @wait_first
|
|
29
|
-
Scenario: Interview name includes url args with a wait
|
|
30
|
-
Given I wait 1 second
|
|
31
|
-
Then I start the interview at "url_args.yml&from=theinternets&random=zoo"
|
|
32
|
-
Then I should see the phrase "zoo"
|
|
33
|
-
|
|
34
|
-
@fast @e6 @signin
|
|
35
|
-
Scenario: I sign in
|
|
36
|
-
Given I sign in with the email "USER1_EMAIL" and the password "USER1_PASSWORD"
|
|
37
|
-
And I start the interview at "all_tests"
|
|
38
|
-
|
|
39
|
-
@fast @e7 @arbitraryurl
|
|
40
|
-
Scenario: I want to go to a full arbitrary url
|
|
41
|
-
Given the max seconds for each step in this scenario is 5
|
|
42
|
-
And the Scenario report should include:
|
|
43
|
-
"""
|
|
44
|
-
Trying to load the interview
|
|
45
|
-
"""
|
|
46
|
-
Given I start the interview at "https://apps-test.suffolklitlab.org/start/demo/questions"
|
|
47
|
-
Then I should see the phrase "What language do you speak?"
|
|
48
|
-
|
|
49
|
-
# WARNING: This Scenario may fail if the file moves or changes too much
|
|
50
|
-
@fast @failing @e8 @rfe8 @arbitraryurl
|
|
51
|
-
Scenario: Fail with no interview at arbitrary url
|
|
52
|
-
Given the final Scenario status should be "failed"
|
|
53
|
-
And the Scenario report should include:
|
|
54
|
-
"""
|
|
55
|
-
Trying to load the interview
|
|
56
|
-
"""
|
|
57
|
-
And the Scenario report should include:
|
|
58
|
-
"""
|
|
59
|
-
ALKiln could not find any interview question page
|
|
60
|
-
"""
|
|
61
|
-
And the max seconds for each step in this scenario is 5
|
|
62
|
-
Then I start the interview at "https://apps-test.suffolklitlab.org/list"
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
@example_feature_tag
|
|
2
|
-
Feature: An example test
|
|
3
|
-
|
|
4
|
-
The tests in this file should cover
|
|
5
|
-
- [x] Provide a template people can use to make their own tests.
|
|
6
|
-
- [ ] Direct people to more documentation.
|
|
7
|
-
- [ ] Find the ultimate question to life, the universe, and everything.
|
|
8
|
-
|
|
9
|
-
@example_scenario_tag
|
|
10
|
-
Scenario: Server finishes reloading
|
|
11
|
-
Given I start the interview at "test"
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
@interactive
|
|
2
|
-
Feature: Interactive steps
|
|
3
|
-
|
|
4
|
-
# In tag names, 'i' is for 'interactive'
|
|
5
|
-
|
|
6
|
-
@slow @i1
|
|
7
|
-
Scenario: I set various values
|
|
8
|
-
Given I start the interview at "all_tests"
|
|
9
|
-
Then the question id should be "upload files"
|
|
10
|
-
When I set the var "upload_files_visible" to "some_png_1.png, some_png_2.png"
|
|
11
|
-
And I set the var "show_upload" to "True"
|
|
12
|
-
And I upload "some_png_2.png,some_png_1.png" to "upload_files_hidden"
|
|
13
|
-
And I tap to continue
|
|
14
|
-
# Next page
|
|
15
|
-
Then the question id should be "group of complex fields"
|
|
16
|
-
And I set the var "double_quote_dict['double_quote_key']['dq_two']" to "true"
|
|
17
|
-
And I set the var "single_quote_dict['single_quote_key']['sq_two']" to "true"
|
|
18
|
-
And I tap to continue
|
|
19
|
-
Then the question id should be "direct standard fields"
|
|
20
|
-
# Next page
|
|
21
|
-
When I set the var "checkboxes_yesno" to "True"
|
|
22
|
-
And I set the var "checkboxes_other['checkbox_other_opt_1']" to "true"
|
|
23
|
-
And I set the var "dropdown_test" to "dropdown_opt_2"
|
|
24
|
-
And I set the var "radio_yesno" to "False"
|
|
25
|
-
And I set the var "radio_other" to "radio_other_opt_3"
|
|
26
|
-
And I set the var "text_input" to "Regular text input field value"
|
|
27
|
-
And I set the var "textarea" to "Multiline text\narea value"
|
|
28
|
-
And I set the var "date_input" to "today - 1"
|
|
29
|
-
When I set the var "direct_standard_fields" to "True"
|
|
30
|
-
# Next page
|
|
31
|
-
Then the question id should be "showifs"
|
|
32
|
-
When I set the var "show_2" to "True"
|
|
33
|
-
And I set the var "show_3" to "True"
|
|
34
|
-
And I set the var "showif_checkbox_yesno" to "true"
|
|
35
|
-
And I set the var "showif_checkboxes_other['showif_checkboxes_nota_2']" to "true"
|
|
36
|
-
And I set the var "showif_checkboxes_other['showif_checkboxes_nota_3']" to "true"
|
|
37
|
-
And I set the var "showif_yesnoradio" to "True"
|
|
38
|
-
And I set the var "showif_radio_other" to "showif_radio_multi_2"
|
|
39
|
-
And I set the var "showif_text_input" to "Show if text input value"
|
|
40
|
-
And I set the var "showif_textarea" to "Show if\nmultiline text\narea value"
|
|
41
|
-
And I set the var "showif_dropdown" to "showif_dropdown_1"
|
|
42
|
-
When I tap to continue
|
|
43
|
-
# Next page
|
|
44
|
-
Then the question id should be "object checkboxes"
|
|
45
|
-
And I set the var "object_checkboxes_test['obj_chkbx_opt_1']" to "true"
|
|
46
|
-
And I set the var "object_dropdown" to "obj_opt_2"
|
|
47
|
-
When I tap to continue
|
|
48
|
-
# Next page
|
|
49
|
-
Then the question id should be "buttons yesnomaybe"
|
|
50
|
-
When I set the var "buttons_yesnomaybe" to "None"
|
|
51
|
-
# Next page
|
|
52
|
-
Then the question id should be "buttons other"
|
|
53
|
-
When I set the var "buttons_other" to "button_3"
|
|
54
|
-
# Next page
|
|
55
|
-
Then the question id should be "button continue"
|
|
56
|
-
When I set the var "button_continue" to "True"
|
|
57
|
-
# Next page
|
|
58
|
-
Then the question id should be "screen features"
|
|
59
|
-
When I tap to continue
|
|
60
|
-
# Next page
|
|
61
|
-
Then the question id should be "proxy vars"
|
|
62
|
-
When I set the var "x[i].name.first" to "Proxyname1"
|
|
63
|
-
And I tap to continue
|
|
64
|
-
# Next page
|
|
65
|
-
Then the question id should be "is there another generic"
|
|
66
|
-
When I set the var "x.there_is_another" to "True"
|
|
67
|
-
# Next page
|
|
68
|
-
Then the question id should be "proxy vars"
|
|
69
|
-
When I set the var "x[i].name.first" to "Proxyname2"
|
|
70
|
-
And I tap to continue
|
|
71
|
-
# Next page
|
|
72
|
-
Then the question id should be "is there another generic"
|
|
73
|
-
When I set the var "x.there_is_another" to "False"
|
|
74
|
-
# Next page
|
|
75
|
-
Then the question id should be "first signature"
|
|
76
|
-
When I sign
|
|
77
|
-
And I tap to continue
|
|
78
|
-
# Next page
|
|
79
|
-
Then the question id should be "second signature"
|
|
80
|
-
When I sign
|
|
81
|
-
And I tap to continue
|
|
82
|
-
# Next page
|
|
83
|
-
Then the question id should be "simple doc"
|
|
84
|
-
When I download "simple-doc.pdf"
|
|
85
|
-
And I tap to continue
|
|
86
|
-
# Next page
|
|
87
|
-
Then the question id should be "button event action"
|
|
88
|
-
And I tap to continue
|
|
89
|
-
# Next page
|
|
90
|
-
Then the question id should be "single-dropdown-field"
|
|
91
|
-
And I set the var "single_dropdown_field" to "email"
|
|
92
|
-
And I tap to continue
|
|
93
|
-
# Next page
|
|
94
|
-
Then the question id should be "the end"
|
|
95
|
-
|
|
96
|
-
@fast @i2 @secret
|
|
97
|
-
Scenario: handles settings from Github secrets
|
|
98
|
-
Given the final Scenario status should be "failed"
|
|
99
|
-
And the Scenario report should include:
|
|
100
|
-
"""
|
|
101
|
-
The GitHub SECRET "SECRET_NOT_THERE" doesn't exist
|
|
102
|
-
"""
|
|
103
|
-
Given I start the interview at "test_secret_vars"
|
|
104
|
-
When I set the var "first_text_entry" to the secret "SECRET_VAR1"
|
|
105
|
-
And I tap to continue
|
|
106
|
-
Then I see the phrase "secret-var1-value"
|
|
107
|
-
When I tap to continue
|
|
108
|
-
And I set the var "second_text_entry" to the github secret "SECRET_VAR2"
|
|
109
|
-
And I tap to continue
|
|
110
|
-
Then I see the phrase "secret-var2-value"
|
|
111
|
-
When I tap to continue
|
|
112
|
-
And I set the variable "third_text_entry" to secret "SECRET_NOT_THERE"
|
|
113
|
-
|
|
114
|
-
@i3 @tap-elements @tabs
|
|
115
|
-
Scenario: tap elements
|
|
116
|
-
Given I start the interview at "test_taps"
|
|
117
|
-
And I tap the "Tests-first_template-tab" tab
|
|
118
|
-
Then I see the phrase "Mechanics"
|
|
119
|
-
And I tap the "Tests-second_template-tab" tab
|
|
120
|
-
Then I see the phrase "villify"
|
|
121
|
-
And I tap the "Tests-third_template-tab" tab
|
|
122
|
-
Then I see the phrase "museum"
|
|
123
|
-
And I tap the "#special_event" element and wait 1 second
|
|
124
|
-
Then I see the phrase "Portishead"
|
|
125
|
-
|
|
126
|
-
@i4 @tap-elements @tabs @error
|
|
127
|
-
Scenario: tap element with an error
|
|
128
|
-
Given the final Scenario status should be "failed"
|
|
129
|
-
And the Scenario report should include:
|
|
130
|
-
"""
|
|
131
|
-
is there a typo?
|
|
132
|
-
"""
|
|
133
|
-
Given I start the interview at "test_taps"
|
|
134
|
-
And I tap the "Tests-not_there-tab" tab
|
|
135
|
-
|
|
136
|
-
@i5 @decoding-test @object-multiselect
|
|
137
|
-
Scenario: Base64 encoded corner cases are decoded correctly
|
|
138
|
-
Given I start the interview at "test_decoding"
|
|
139
|
-
And I get to "end screen" with this data:
|
|
140
|
-
| var | value | trigger |
|
|
141
|
-
| object_multiselect_test['obj_opt_1'] | True | |
|
|
142
|
-
| object_multiselect_test['obj_opt_3'] | True | |
|
|
143
|
-
| multiselect_test['hi'] | True | |
|
|
144
|
-
| multiselect_test['dear'] | True | |
|
|
145
|
-
| object_radio_field | object_radio_choice_one | |
|
|
146
|
-
| object_checkboxes_test['obj_chkbx_opt_1'] | True | |
|
|
147
|
-
| object_dropdown | obj_opt_2 | |
|
|
148
|
-
| checkbox_dict['single_quote_key']['🁳🧴🥫🅍🗎🗷🌲🯵'] | True | |
|
|
149
|
-
|
|
150
|
-
# This test should fail because it's target id is never found, but that also means
|
|
151
|
-
# it has succeeded because it didn't try to keep looking for the id by pressing 'restart'
|
|
152
|
-
# to continue.
|
|
153
|
-
@fast @i6
|
|
154
|
-
Scenario: Fails as it doesn't try to 'continue' with a restart button
|
|
155
|
-
Given the final Scenario status should be "failed"
|
|
156
|
-
And the Scenario report should include:
|
|
157
|
-
"""
|
|
158
|
-
The test got stuck on "kickout-screen"
|
|
159
|
-
"""
|
|
160
|
-
Given the max seconds for each step in this scenario is 10
|
|
161
|
-
Given I start the interview at "test_kickout"
|
|
162
|
-
And I get to "doesnt exist" with this data:
|
|
163
|
-
| var | value | trigger |
|
|
164
|
-
| user_choice | wrong | |
|
|
165
|
-
|
|
166
|
-
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
@observation
|
|
2
|
-
Feature: Observational steps
|
|
3
|
-
|
|
4
|
-
# In tag names, 'o' is for 'observational'
|
|
5
|
-
|
|
6
|
-
@fast @o1
|
|
7
|
-
Scenario: I observe things on a single page when I arrive
|
|
8
|
-
Given I start the interview at "all_tests"
|
|
9
|
-
And I tap to continue
|
|
10
|
-
Then the question id should be "group of complex fields"
|
|
11
|
-
And I should see the phrase "Some complex fields"
|
|
12
|
-
And I SHOULD see the phrase "Some complex fields"
|
|
13
|
-
And I should not see the phrase "zzzzzzz"
|
|
14
|
-
And I should NOT see the phrase "zzzzzzz"
|
|
15
|
-
And an element should have the id "daform"
|
|
16
|
-
|
|
17
|
-
@fast @o2
|
|
18
|
-
Scenario: I see user errors.
|
|
19
|
-
# They're everywhere. Some don't even know they are errors.
|
|
20
|
-
Given I start the interview at "all_tests"
|
|
21
|
-
And I tap to continue
|
|
22
|
-
And I tap to continue
|
|
23
|
-
And I tap to continue
|
|
24
|
-
Then I can't continue
|
|
25
|
-
And I will be told an answer is invalid
|
|
26
|
-
|
|
27
|
-
@fast @o3
|
|
28
|
-
Scenario: I can include .yml in the filename
|
|
29
|
-
Given I start the interview at "all_tests.yml"
|
|
30
|
-
|
|
31
|
-
@slow @o4
|
|
32
|
-
Scenario: I check navigation
|
|
33
|
-
Given I start the interview at "all_tests"
|
|
34
|
-
And I tap to continue
|
|
35
|
-
And I get to "showifs" with this data:
|
|
36
|
-
| var | value | trigger |
|
|
37
|
-
| double_quote_dict["double_quote_key"]['dq_two'] | true | |
|
|
38
|
-
| checkboxes_other['checkbox_other_opt_1'] | true | |
|
|
39
|
-
| dropdown_test | dropdown_opt_2 | |
|
|
40
|
-
| radio_yesno | False | false |
|
|
41
|
-
| radio_other | radio_other_opt_3 | |
|
|
42
|
-
| single_quote_dict['single_quote_key']['sq_two'] | true | |
|
|
43
|
-
| text_input | Regular text input field value | |
|
|
44
|
-
| textarea | Multiline text\narea value | |
|
|
45
|
-
| date_input | today | |
|
|
46
|
-
Then I arrive at the next page
|
|
47
|
-
Then I get to "screen features" with this data:
|
|
48
|
-
| var | value | trigger |
|
|
49
|
-
| object_checkboxes_test["obj_chkbx_opt_1"] | True | |
|
|
50
|
-
| object_dropdown | obj_opt_2 | |
|
|
51
|
-
| button_continue | True | |
|
|
52
|
-
| buttons_other | button_2 | |
|
|
53
|
-
| buttons_yesnomaybe | True | |
|
|
54
|
-
And I should see the link to "http://ecosia.org/"
|
|
55
|
-
|
|
56
|
-
@fast @o4
|
|
57
|
-
Scenario: Test "Then I don't continue" with a single quote
|
|
58
|
-
Given I start the interview at "all_tests"
|
|
59
|
-
And I tap to continue
|
|
60
|
-
And I tap to continue
|
|
61
|
-
And I tap to continue
|
|
62
|
-
Then I don't continue
|
|
63
|
-
And I will be told an answer is invalid
|
|
64
|
-
|
|
65
|
-
@fast @o5
|
|
66
|
-
Scenario: Test "Then I cannot continue"
|
|
67
|
-
Given I start the interview at "all_tests"
|
|
68
|
-
And I tap to continue
|
|
69
|
-
And I tap to continue
|
|
70
|
-
And I tap to continue
|
|
71
|
-
Then I cannot continue
|
|
72
|
-
And I will be told an answer is invalid
|
|
73
|
-
|
|
74
|
-
@fast @o6
|
|
75
|
-
Scenario: Test "Then I do not continue"
|
|
76
|
-
Given I start the interview at "all_tests"
|
|
77
|
-
And I tap to continue
|
|
78
|
-
And I tap to continue
|
|
79
|
-
And I tap to continue
|
|
80
|
-
Then I do not continue
|
|
81
|
-
And I will be told an answer is invalid
|
|
82
|
-
|
|
83
|
-
@fast @o7
|
|
84
|
-
Scenario: Test "Then I can’t continue" with an apostrophe
|
|
85
|
-
Given I start the interview at "all_tests"
|
|
86
|
-
And I tap to continue
|
|
87
|
-
And I tap to continue
|
|
88
|
-
And I tap to continue
|
|
89
|
-
Then I can’t continue
|
|
90
|
-
And I will be told an answer is invalid
|
|
91
|
-
|
|
92
|
-
@fast @o8
|
|
93
|
-
Scenario: Test "Then I don’t continue" with an apostrophe
|
|
94
|
-
Given I start the interview at "all_tests"
|
|
95
|
-
And I tap to continue
|
|
96
|
-
And I tap to continue
|
|
97
|
-
And I tap to continue
|
|
98
|
-
Then I don’t continue
|
|
99
|
-
And I will be told an answer is invalid
|
|
100
|
-
|
|
101
|
-
@fast @o9 @table @json
|
|
102
|
-
Scenario: I can match JSON page var to str
|
|
103
|
-
Given I start the interview at "all_tests.yml"
|
|
104
|
-
And I get to "showifs" with this data:
|
|
105
|
-
| var | value | trigger |
|
|
106
|
-
| double_quote_dict["double_quote_key"]['dq_two'] | true | |
|
|
107
|
-
| checkboxes_other['checkbox_other_opt_1'] | true | |
|
|
108
|
-
| dropdown_test | dropdown_opt_2 | |
|
|
109
|
-
| radio_yesno | False | false |
|
|
110
|
-
| radio_other | radio_other_opt_3 | |
|
|
111
|
-
| single_quote_dict['single_quote_key']['sq_two'] | true | |
|
|
112
|
-
| text_input | Regular text input field value | |
|
|
113
|
-
| textarea | Multiline text\narea value | |
|
|
114
|
-
| date_input | today | |
|
|
115
|
-
Then the text in the JSON variable "dropdown_test" should be
|
|
116
|
-
"""
|
|
117
|
-
dropdown_opt_2
|
|
118
|
-
"""
|
|
119
|
-
|
|
120
|
-
# Maybe this one should be in the report tests (as well?)
|
|
121
|
-
@fast @o10 @json
|
|
122
|
-
Scenario: I get the page's JSON
|
|
123
|
-
Given I start the interview at "all_tests"
|
|
124
|
-
Then I get the page's JSON variables and values
|
|
125
|
-
|
|
126
|
-
@fast @o11 @screenshot
|
|
127
|
-
Scenario: I take a screenshot
|
|
128
|
-
Given I start the interview at "all_tests"
|
|
129
|
-
Then I take a screenshot
|
|
130
|
-
Then I take a screenshot named "some-screenshot"
|
|
131
|
-
|
|
132
|
-
@slow @o12 @accessibility @a11y
|
|
133
|
-
Scenario: I check the pages for accessibility
|
|
134
|
-
Given I start the interview at "all_tests"
|
|
135
|
-
And I check all pages for accessibility issues
|
|
136
|
-
And I tap to continue
|
|
137
|
-
Then I get to "screen features" with this data:
|
|
138
|
-
| var | value | trigger |
|
|
139
|
-
| double_quote_dict["double_quote_key"]['dq_two'] | true | |
|
|
140
|
-
| checkboxes_other['checkbox_other_opt_1'] | true | |
|
|
141
|
-
| dropdown_test | dropdown_opt_2 | |
|
|
142
|
-
| radio_yesno | False | false |
|
|
143
|
-
| radio_other | radio_other_opt_3 | |
|
|
144
|
-
| object_checkboxes_test["obj_chkbx_opt_1"] | True | |
|
|
145
|
-
| object_dropdown | obj_opt_2 | |
|
|
146
|
-
| object_select_test | obj_chkbx_opt_2 | |
|
|
147
|
-
| single_quote_dict['single_quote_key']['sq_two'] | true | |
|
|
148
|
-
| text_input | Regular text input field value | |
|
|
149
|
-
| textarea | Multiline text\narea value | |
|
|
150
|
-
| date_input | today | |
|
|
151
|
-
| button_continue | True | |
|
|
152
|
-
| buttons_other | button_2 | |
|
|
153
|
-
| buttons_yesnomaybe | True | |
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
@random_input
|
|
2
|
-
Feature: Assembly Line package-specific Steps
|
|
3
|
-
|
|
4
|
-
# In tag names, 'ri' is for 'random input'
|
|
5
|
-
|
|
6
|
-
@fast @ri1 @random
|
|
7
|
-
Scenario: I fill in random input till the end
|
|
8
|
-
Given I start the interview at "test_random_input"
|
|
9
|
-
And I answer randomly for at most 20 pages
|
|
10
|
-
Then the question id should be "end"
|
|
11
|
-
|
|
12
|
-
@fast @ri2 @random
|
|
13
|
-
Scenario: I fill in random input for 1 page
|
|
14
|
-
Given I start the interview at "test_random_input"
|
|
15
|
-
And I answer randomly for at most 1 page
|
|
16
|
-
|
|
17
|
-
# Should create two unique folders for random step screenshots which
|
|
18
|
-
# must be checked manually
|
|
19
|
-
@fast @ri3 @random
|
|
20
|
-
Scenario: I answer randomly till the end twice
|
|
21
|
-
Given I start the interview at "test_random_input"
|
|
22
|
-
And I answer randomly for at most 50 pages
|
|
23
|
-
Given I start the interview at "test_random_input"
|
|
24
|
-
And I answer randomly for at most 50 pages
|
|
25
|
-
|
|
26
|
-
@fast @ri4 @random @error
|
|
27
|
-
Scenario: Fail with error page from random input
|
|
28
|
-
Given the final Scenario status should be "failed"
|
|
29
|
-
Given I start the interview at "test_missing_var_error_screen"
|
|
30
|
-
And the max seconds for each step in this scenario is 10
|
|
31
|
-
And I answer randomly for at most 3 pages
|