I have a React project. I am trying to use an npm script that will run a test using testcafe. This test uses yargs
and shelljs
. When I run the tests outside of the package.json
everything works fine, but when I use npm run test:local -- --api=local
it does not work and I get an error:
ERROR No tests to run. Either the test files contain no tests or the filter function is too restrictive.
I want to be able to run the script to start my tests. Below is my code. Thank you.
Package.json:
"scripts": {
"test:local": "node ./test/features/index.js",
}
index.js:
const argv = require('yargs').argv;
const shell = require('shelljs');
if (argv.api === 'local') {
shell.exec('testcafe chrome:headless login-test.js');
}
login-test.js:
/* eslint-disable no-unused-expressions */
import { Selector } from 'testcafe';
import Page from './page-model';
const page = new Page();
fixture`Log In Page`.page(page.loginScreen);
test('Log In', async t => {
await page.userLogin(t);
});
test('Forgot Password', async t => {
const forgotLink = Selector('a').withAttribute('href', '/forgot');
const forgotEmailInput = Selector('input').withAttribute('placeholder', 'Email address');
const resetModal = Selector('div').withAttribute('class', 'Toast-message').innerText;
await t
.click(forgotLink)
.typeText(forgotEmailInput, 'my@email.co')
.click(page.submit)
.expect(resetModal)
.eql('Password reset sent.');
});
test('Forgot Password - Ready to login link', async t => {
const forgotLink = Selector('a').withAttribute('href', '/forgot');
const readyLoginButton = Selector('a').withAttribute('href', '/login');
await t.click(forgotLink).click(readyLoginButton);
});