Package Exports
- test-mixer
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (test-mixer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
test-mixer
Test helper to generate function opts object variations
Install
npm i test-mixerQuick Take
import { strict as assert } from "assert";
import { mixer } from "test-mixer";
// check all possible combinations of all boolean opts:
const defaultOpts = {
scrapeWindshield: true,
checkOil: true,
inflateTires: false,
extinguishersCount: 1, // as non-boolean will be ignored
};
// generates 2^3 = 8 combinations all possible bools
assert.deepEqual(
mixer(
{
// empty first arg object means you want all combinations
},
defaultOpts
),
[
{
scrapeWindshield: false,
checkOil: false,
inflateTires: false,
extinguishersCount: 1,
},
{
scrapeWindshield: true,
checkOil: false,
inflateTires: false,
extinguishersCount: 1,
},
{
scrapeWindshield: false,
checkOil: true,
inflateTires: false,
extinguishersCount: 1,
},
{
scrapeWindshield: true,
checkOil: true,
inflateTires: false,
extinguishersCount: 1,
},
{
scrapeWindshield: false,
checkOil: false,
inflateTires: true,
extinguishersCount: 1,
},
{
scrapeWindshield: true,
checkOil: false,
inflateTires: true,
extinguishersCount: 1,
},
{
scrapeWindshield: false,
checkOil: true,
inflateTires: true,
extinguishersCount: 1,
},
{
scrapeWindshield: true,
checkOil: true,
inflateTires: true,
extinguishersCount: 1,
},
]
);
// let's "pin" a value, prepare two sets of options objects,
// one where scrapeWindshield === true and another with "false"
// you'll get 2 ^ (3-1) = 4 variations:
const variationsWithScrapeWindshieldOn = mixer(
{
scrapeWindshield: true,
},
defaultOpts
);
assert.deepEqual(variationsWithScrapeWindshieldOn, [
{
scrapeWindshield: true, // <--- pinned
checkOil: false,
inflateTires: false,
extinguishersCount: 1,
},
{
scrapeWindshield: true, // <--- pinned
checkOil: true,
inflateTires: false,
extinguishersCount: 1,
},
{
scrapeWindshield: true, // <--- pinned
checkOil: false,
inflateTires: true,
extinguishersCount: 1,
},
{
scrapeWindshield: true, // <--- pinned
checkOil: true,
inflateTires: true,
extinguishersCount: 1,
},
]);
// also 4 variations, similar but with scrapeWindshield === false pinned:
const variationsWithScrapeWindshieldOff = mixer(
{
scrapeWindshield: false,
},
defaultOpts
);
assert.equal(variationsWithScrapeWindshieldOff.length, 4);Documentation
Please visit codsen.com for a full description of the API and examples.
Licence
MIT License
Copyright (c) 2010-2021 Roy Revelt and other contributors
![]()