npm.io
3.0.1 • Published 4 months ago

@natlibfi/fixugen

Licence
MIT
Version
3.0.1
Deps
1
Size
37 kB
Vulns
0
Weekly
0

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).
  • hooks: 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
}

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

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