pupcheck v0.2.1
Pupcheck
Simple file format for puppeteer-based End-to-end tests:
goto https://saltcorn.com
status 200
contains platform for building database
containsnot platform for building databseCommand line tool
run with
npx pupcheck
pupcheck [-Hhv] [file ...]
Command line switches:
-H : Headful; open browser window
-v : verbose
-h, --help : helpChrome or chromium need to be installed and accessible. If this is in a non-standard location, set the
PUPPETEER_CHROMIUM_BIN environment variable.
Set the base URL with the PUPCHECK_BASE_URL environment variable. Then you can use a relative URL; for example
goto /Upgrade
npx clear-npx-cache to delete an old version of pupcheck installed with npx, then run npx pupcheck0 again.
pupcheck file commands
The pupcheck file consists of a number of one-word commands, followed by the arguments to that command. If the command takes a free text argument, this will be the last argument and will consist of the rest of the line.
The command is case insensitive, so you can use camelCase.
# This is a comment but only if # is first character
If your selector has a space due to choosing a child element, wrap in parentheses.
Permitted commands
goto {url}Navigate to this URL
Example:
goto https://google.comstatus {status code}Assert this status code
Example:
status 200contains {contents}Assert this is in the page contents
Example:
contains Tasks completedcontainsnot {contents}(alsocontains_not)Assert this is in not in the page contents
Example:
containsNot An error occurredclick {selector}Click the selected element and wait for navigation to complete
Example:
click button#click_mewaitfor {selector}(alsowait_for)Wait until this element becomes present
Example:
waitfor button#click_metype {selector} {text}Type the text into the selected input element.
Examples:
type input#full_name John Smith,type (#question-name input) Walt Whitmanslowlytype {selector} {text}(alsoslowly_type)Type the text SLOWLY into the selected input element.
Examples:
slowly_type input#full_name John Smith,slowlyType (#question-name input) Walt Whitmanselect {selector} {value}Set the value of a drop-down
<select>elementExamples:
select select#role 5erase {selector} {nchars}Erase characters from the selected input element.
Examples:
erase input#full_name 9evaltrue {js-expr-string}(alsoeval_true)Assert that this expression must evaluate to true
Examples:
eval_true $("input#full_name").val()==="Miles Davis"sleep {milliseconds}Sleep for this many milliseconds
Example:
sleep 1000
Example pupcheck file
example.pch contents:
goto https://example.com/
# Login
type input#id_username egergerarg@gmail.com
type input#id_password grehq4hhq32534534t
click input[type=submit]
# Check dashboard loads
contains Tasks completedHow to run:
npx pupcheck example.pch