0.0.0-9 • Published 3 years ago

@plurid/runner v0.0.0-9

Weekly downloads
-
License
SEE LICENSE IN LI...
Repository
github
Last release
3 years ago

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).

checks 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

0.0.0-8

3 years ago

0.0.0-7

3 years ago

0.0.0-6

3 years ago

0.0.0-9

3 years ago

0.0.0-4

3 years ago

0.0.0-3

3 years ago

0.0.0-2

3 years ago

0.0.0-1

3 years ago

0.0.0-5

3 years ago

0.0.0-0

3 years ago