@plurid/runner
v0.0.0-9
Published
Test Runner with Preparation/Postparation Stages
Downloads
21
Maintainers
Readme
runner
is intended to run programmatic tests with complete preparation and postparation stages.
Supported languages:
JavaScript
TypeScript
Contents
Usage
Install runner
npm install --save-dev @plurid/runner
or
yarn add -D @plurid/runner
write a test runner
using TypeScript
or JavaScript
, adding .run
, .test
, or .runner
before the file extension (e.g. example.run.ts
)
import runner, {
RunnerPrepare,
RunnerPostpare,
RunnerRun,
} from '@plurid/runner';
interface Prepared {
data: boolean;
}
interface Runned {
data: boolean;
}
const prepare: RunnerPrepare<Prepared> = async (
check,
) => {
const value = Math.random();
check('example · works', value, 0.5, '<');
const data = value < 0.5;
check('example · works', data, true);
return {
data,
};
}
const run: RunnerRun<Prepared, Runned> = async (
check,
prepared,
) => {
check('example · works', prepared.data, true);
return {
data: false,
};
}
const postpare: RunnerPostpare<Prepared, Runned> = async (
check,
prepared,
runned,
) => {
check('example · works', prepared.data, true);
const passed = check('example · works', runned.data, true);
if (passed) {
// passed action
} else {
// not passed action
}
}
runner(
prepare,
run,
postpare,
);
To execute the runners use the runner
cli
runner /path/to/test/file/or/folder
Running the example runner
will log similar to the following
prepare passed :: example · works :: 0.15412422456759045 < 0.5
prepare passed :: example · works :: true == true
run passed :: example · works :: true == true
postpare passed :: example · works :: true == true
postpare failed :: example · works :: false not == true
or
prepare failed :: example · works :: 0.7123851592649375 not < 0.5
prepare failed :: example · works :: false not == true
run failed :: example · works :: false not == true
postpare failed :: example · works :: false not == true
postpare failed :: example · works :: false not == true
The prepare
and postpare
are meant for setting up and tearing down the environment in which the run
will execute.
The results of prepare
are passed to run
, and the results of prepare
and run
are passed to postpare
.
Usually, prepare
and postpare
imply priviledged executions (such as writing/deleting directly from the database, direct manipulation of the file system, anything required to ensure the run
is set to pass).
check
s can be performed at any stage of the runner
.
A check
respects the following interface
export type Check = (
message: string,
testValue: any,
expectedValue: any,
relationship?: CheckRelationship,
) => void;
export type CheckRelationship =
| '==' | '<' | '<=' | '>' | '>=';
Packages
@plurid/runner-javascript • the JavaScript
/TypeScript
implementation