2.1.5 • Published 2 years ago

@jeje-devs/plume-testing v2.1.5

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

PlumeTesting

Table of contents

General info

PlumeTesting is a very light testing library. The purpose is to run test a very minimal way.

Technologies

  • Node.js
  • Typescript

Setup

npm install @jeje-devs/plume-testing

Usage

Simply run

import { runTests, theArray, theNumber, theBoolean } from '@jeje-devs/plume-testing';

runTests<void>({

    'ArrayShould': () =>
    {
        theArray(['foo', 'bar', 'baz']).shouldHaveLength(3);
        theArray([{ name: 'Foo' }, { name: 'Bar' }, { name: 'Baz' }])
            .shouldVerify(array => array.length === 3 && array[1].name === 'Bar');
    },

    'NumberShould': () =>
    {
        theNumber(15.15).shouldBe(15.15);
        theNumber(9.81).shouldNotBe(10);
    },

    'BooleanShould': () =>
    {
        // This test will fail
        theBoolean(false).shouldBeTrue();
    }

    // All remaining tests

});

This method will log the test results:

==================================================

Tests succeeded: 2
Tests failed: 1

TESTS FAILED:

BooleanShould:   Assert failed. Actual boolean 'false' should be 'true'

TESTS SUCCEEDED:

ArrayShould
NumberShould

==================================================

You can also run tests asynchronously:

runTests<void>({

    'SomethingShould': async () =>
    {
        const actual = await giveMeANumberAsynchronously();

        theObject(actual).shouldNotBeNil();
        theNumber(actual).shouldBe(123);
    }

});

If you don't want to display the results but storing them to a variable, just use the method getTestsResults:

import { getTestsResults, theObject } from '@jeje-devs/plume-testing';

const results = await getTestsResults<void>({

    'SomeTest': () =>
    {
        theObject(null).shouldBeNil();
    }

});

The different testing methods are:

  • assert
  • theObject
  • theArray
  • theDate
  • theString
  • theNumber
  • theBoolean

Tests lifecycle

You can also pass 2 optional methods for the tests:

  • initialize: If you need something to run before the tests and also store variables during the whole testing lifecycle, you can use this method
  • terminate: If you need to call stuff after the tests have run, you can call this method

Example:

interface TestParams
{
    message: string;
}

function initialize(): TestParams
{
    // Tests initialization
    return { message: 'Hello World!' };
}

function terminate(params: TestParams): void
{
    // Tests termination
}

runTests<TestParams>({

    // We can also access the parameters inside test methods
    'SomethingShould': async params =>
    {
        const actual = await giveMeANumberAsynchronously();

        theObject(actual).shouldNotBeNil();
        theNumber(actual).shouldBe(123);
    }

}, initialize, terminate);

Contributors

Links

2.1.5

2 years ago

2.1.4

2 years ago

2.1.3

2 years ago

2.1.2

2 years ago

2.1.1

2 years ago

2.1.0

2 years ago

2.0.0

2 years ago

2.0.0-pre-3

2 years ago

2.0.0-pre-2

2 years ago

2.0.0-pre-1

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago