@natlibfi/fixugen

2.0.6 • Public • Published

Generate Node.js unit tests from fixtures and callbacks

NPM Version Node Version

Mocha is used a unit testing framework. Invoke fixugen in a .spec file with Mocha environment injected as usual.

Provides test callbacks with Fixura's functions to fetch test fixtures.

Usage

The test fixture directory is parsed as follows: Each subdirectory becomes a unit test group (Mocha's describe) and inner subdirectories each represent individual tests (Mocha's it).

import generateTests from '@natlibfi/fixugen';

generateTests({
  path: [__dirname, '..', 'test-fixtures'],
  callback: ({getFixture}) => {
    const expectedValue = getFixture('value.txt');
    const value = generateSomething();
    expect(value).to.equal(expectedValue);
  }
});

Options

  • callback: A callback function passed to Mocha's it. Receives Fixura's function as arguments.
    • dirName: callback gets dirName variable that is one folder up
  • path: An array of path components which make up a path to the test fixtures directory
  • recurse: Whether to recurse into the subdirectories of path. If false the last directory of the path is used as the name of the Mocha's describe-call and it's direct subdirectories are used as unit test directories. Defaults to true
  • fixura: Options that are passed to Fixura.
  • useMetadataFile: If set to true, reads and parses a file named metadata.json in each unit test directory. The content must be a JSON object and it's properties as passed to the unit test callback function.
    • If a property description is present, it is used as the test's description (Defaults to false and folder name is used).
    • If a property skip is present, it decides if test is skipped (Defaults to false).
    • If a property only is present, it decides if this/these tests are only run (Defaults to false).
  • mocha: An object which maps the following properties to Mocha's corresponding callbacks: after, before, afterEach, beforeEach

Example metadata.json

{
  "description": "Example description of test",
  "skip": false,
  "only": false
}

License and copyright

Copyright (c) 2020, 2023-2024 University Of Helsinki (The National Library Of Finland)

This project's source code is licensed under the terms of MIT or any later version.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 2.0.6
    417
    • latest

Version History

Package Sidebar

Install

npm i @natlibfi/fixugen

Weekly Downloads

553

Version

2.0.6

License

MIT

Unpacked Size

43.7 kB

Total Files

71

Last publish

Collaborators

  • natlibfi-jonollil
  • drone-melinda