@fiit/testcaffeine
v0.4.0
Published
Wrapper for Testcafe
Downloads
62
Keywords
Readme
Testcaffeine
Wrapper for Testcafe framework.
This framework wraps testcafe and testcafe-react-selectors packages and exposes their methods that we use across the tests.
It also exposes custom actions which are wrappers for most of the default Testcafe actions.
Usage
yarn add -D '@fiit/testcaffeine'
- peer dependency:
'@fiit/babel-preset-fiit'
- dependencies:
'testcafe', 'testcafe-react-selectors'
API
The list of all functions exported by this package can be found in index.js file.
There's no default export so you always have to explicitly provide what you want to import.
Actions
Actions should be used in page objects and *test.js
files
import { Type, Click, Check } from '@fiit/testcaffeine';
describe(...);
test('Login', async () => {
Type.into(LoginPage.email, '[email protected]');
Type.into(LoginPage.password, 'password');
Click.on(LoginPage.loginButton);
Check.isVisible(HomePage.title);
});
Testcafe functions
Default Testcafe functions should be used in page objects and helpers/utils files.
import { t, ClientFunction, Selector, ReactSelector } from '@fiit/testcaffeine';
Test runner
Tets runner should be used in a node script to runs the tests.
const { runUITests } = require('@fiit/testcaffeine');
const browsers = ['chrome', 'safari'];
const paths = ['ui-tests/*test.js'];
// All run options available here: https://devexpress.github.io/testcafe/documentation/using-testcafe/programming-interface/runner.html#run
const runOptions = {
quarantineMode: true,
stopOnFirstFail: true,
};
runUITests(browsers, paths, runOptions);
Constants
Exports generic constants reused across tests.
import { constants } from '@fiit/testcaffeine';
constants.SELECTOR_TIMEOUT_MS; // 10000ms
Development
If you create a PR, please include Dawid Dylowicz (@dawiddylowicz) as a reviewer.
make init
- required to setup NPM_TOKEN locally for docker buildsmake build
- to build on docker containeryarn test:ui
runs UI tests using headless Chrome by default.