fusion-test-utils
TypeScript icon, indicating that this package has built-in type declarations

2.6.2 • Public • Published

fusion-test-utils

Build status

Provides test utility functions for Fusion.js


yarn add fusion-test-utils

Example

import App from 'fusion-core';
import {getSimulator} from 'fusion-test-utils';

// create simulator
const app = new App();
const simulator = getSimulator(app /*, (optional) test plugin with assertions on dependencies */);

// test renders of your application
const ctx = await simulator.render('/test-url', {
  headers: {
    'x-header': 'value',
  }
});
// do assertions on ctx

// test requests to your application
const ctx = await simulator.request('/test-url', {
  headers: {
    'x-header': 'value',
  }
});
// do assertions on ctx

API

getSimulator(app: FusionApp, testPlugin?: FusionPlugin) => { request, render, getService }

Creates a simulator which exposes functionality to simulate requests and renders through your application. app - instance of a FusionApp testPlugin - optional plugin to make assertions on dependencies

getSimulator(...).request(url: String, options: ?Object) => Promise<Context>

Simulates a request through your application. url - path for request options - optional object containing custom settings for the request options.method - the request method, e.g., GET, POST, options.headers - headers to be added to the request options.body - body for the request

getSimulator(...).render(url: String, options: ?Object) => Promise<Context>

This is the same as request, but defaults the accept header to text/html which will trigger a render of your application.

getSimulator(...).getService(token: Token<T>) => T

This is a useful utility for testing the API provided by a plugin. For example:

const app = new App(el, el => el);
app.register(LoggerToken, LoggerPlugin);
const sim = getSimulator(app);
const logger = sim.getService(LoggerToken);

createRequestContext(url: String, options: ?Object) => Context

Creates a mock context object. url - path for request options - optional object containing custom settings for the request options.method - the request method, e.g., GET, POST, options.headers - headers to be added to the request options.body - body for the request

createRenderContext(url: String, options: ?Object) => Context

The same as createRequestContext, but defaults the accept header to text/html which will trigger a render of the application.

test(testName: String, executor: (assert) => {})

A block which executes a test case when using fusion-cli as a test runner. The first argument is the name of the test, and the second argument is a function that executes your test code. The test case will receive a cross-environment assertion helper with all methods defined in the assert module, as well as a .matchSnapshot() method.

Example usage:

import React from 'react';
import {test} from 'fusion-test-utils';
import {render} from '@testing-library/react';

import MyComponent from '../my-component';

test('MyComponent snapshot', assert => {
  const {asFragment} = render(<MyComponent />);
  assert.matchSnapshot(asFragment());
  // And optionally, you can pass your own snapshot name as the second argument
  assert.matchSnapshot(asFragment(), 'my snapshot description');
});

test('async functions', async assert => {
  const value = await doSomething();
  assert.equal(true, value, 'something is equal to true');
});

mockFunction()

Returns a mock function which allows you to inspect the mock state via the .mock property. Example usage:

import {mockFunction, test} from '../index';

test('function mocks', assert => {
  const myMock = mockFunction();
  myMock();
  assert.equal(myMock.mock.calls.length, 1);
});

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
2.6.2185latest
1.4.1-12prerelease
0.0.0-canary.ca778ef.01canary

Version History

VersionDownloads (Last 7 Days)Published
0.0.0-canary.ca778ef.01
2.6.2185
0.0.0-canary.52f9d6c.01
0.0.0-canary.1cbe20f.01
2.6.11
2.6.01
2.5.41
2.5.31
0.0.0-canary.f1ab874.01
2.5.21
0.0.0-canary.1ea3b4c.01
2.5.11
0.0.0-canary.7f1cb1f.01
0.0.0-canary.d18411f.01
0.0.0-canary.cc2fb77.01
2.5.01
0.0.0-canary.af83905.01
2.4.21
0.0.0-canary.7982e16.01
2.4.11
0.0.0-canary.df69099.01
2.4.01
0.0.0-canary.5f297f6.01
0.0.0-canary.c77e60d.01
0.0.0-canary.d248f7c.01
0.0.0-canary.2645e7a.01
0.0.0-canary.47148f0.01
0.0.0-canary.a682711.01
2.3.91
0.0.0-canary.57962c1.01
0.0.0-canary.e08ad19.01
0.0.0-canary.5378c1f.01
0.0.0-canary.8894dd7.01
0.0.0-canary.7c27df5.01
0.0.0-canary.c36b35a.01
0.0.0-canary.eac89e2.01
0.0.0-canary.6d29913.01
0.0.0-canary.ce07ef1.01
0.0.0-canary.234cdec.11
2.3.81
0.0.0-canary.c454879.01
0.0.0-canary.7805140.01
0.0.0-canary.a8535bf.01
0.0.0-canary.94de910.01
0.0.0-canary.441c97e.01
2.3.71
0.0.0-canary.0d8f1cb.01
0.0.0-canary.9bf73bd.01
0.0.0-canary.dc38594.01
0.0.0-canary.3afacb1.01
0.0.0-canary.82afe51.01
0.0.0-canary.9081ecc.01
0.0.0-canary.d9125fa.01
2.3.61
0.0.0-canary.03b7f8c.01
0.0.0-canary.c2e995a.01
0.0.0-canary.483ee52.01
0.0.0-canary.4fa95ac.01
0.0.0-canary.0abc031.01
0.0.0-canary.66acb26.01
0.0.0-canary.5f75a67.01
0.0.0-canary.901e6a9.01
0.0.0-canary.f865478.01
0.0.0-canary.4f43ddb.01
0.0.0-canary.a5387d7.01
0.0.0-canary.e4a0af5.01
0.0.0-canary.48261a2.01
0.0.0-canary.a48714f.01
0.0.0-canary.0c6b102.01
0.0.0-canary.d90d4e6.01
0.0.0-canary.3fd760c.01
0.0.0-canary.0115aaa.01
0.0.0-canary.04f01d4.01
2.3.51
0.0.0-canary.53e71c9.01
0.0.0-canary.ba7901a.01
0.0.0-canary.4b95c4d.01
0.0.0-canary.8aa812c.01
0.0.0-canary.f10290c.01
0.0.0-canary.5dafecb.01
0.0.0-canary.2961969.01
2.3.41
0.0.0-canary.fc310f5.01
0.0.0-canary.f4a529b.01
0.0.0-canary.b663bd4.01
0.0.0-canary.53ab1d7.01
0.0.0-canary.6b03a06.01
2.3.31
0.0.0-canary.2fa3949.01
0.0.0-canary.6c63a07.01
2.3.21
0.0.0-canary.c638cb0.01
0.0.0-canary.69a107c.01
2.3.11
0.0.0-canary.4457a44.01
0.0.0-canary.4d4635d.01
0.0.0-canary.0585b99.01
0.0.0-canary.358ea34.01
0.0.0-canary.61befa0.01
0.0.0-canary.940ae04.01
0.0.0-canary.858e9e0.01
0.0.0-canary.99bcfaa.01
0.0.0-canary.a5335ef.01
2.3.05
0.0.0-canary.77d64ce.01
0.0.0-canary.04ebbff.01
0.0.0-canary.e938140.01
0.0.0-canary.addd6fb.01
0.0.0-canary.0f75d56.01
0.0.0-canary.34f1f86.01
0.0.0-canary.009cb5f.01
0.0.0-canary.0833d86.01
2.2.31
0.0.0-canary.f0b60b1.01
0.0.0-canary.d9ecd19.01
0.0.0-canary.74b8151.01
0.0.0-canary.e5a3019.01
0.0.0-canary.cc30c9b.01
2.2.21
0.0.0-canary.66de151.01
0.0.0-canary.dc6dd20.01
2.2.11
0.0.0-canary.b3081dd.01
0.0.0-canary.60586e2.01
2.2.06
0.0.0-canary.4cce754.01
2.1.81
0.0.0-canary.fa4dd7d.01
0.0.0-canary.c68f2d4.01
0.0.0-canary.9158df6.01
0.0.0-canary.4d2f7e5.01
0.0.0-canary.481456c.01
0.0.0-canary.147decc.01
0.0.0-canary.36c1f93.01
0.0.0-canary.7852906.01
0.0.0-canary.bda3eb5.01
0.0.0-canary.156446a.01
0.0.0-canary.243e09c.01
0.0.0-canary.5086770.01
2.1.71
0.0.0-canary.7eef88a.01
0.0.0-canary.c848126.01
0.0.0-canary.7d3770e.01
0.0.0-canary.b936566.01
0.0.0-canary.4cee1e1.01
2.1.61
0.0.0-canary.2eb76df.01
0.0.0-canary.579111b.01
0.0.0-canary.6d664ad.01
0.0.0-canary.770d485.01
2.1.51
0.0.0-canary.89ca12c.01
0.0.0-canary.77061d0.01
0.0.0-canary.5a2a7a7.01
0.0.0-canary.a33a9c8.01
0.0.0-canary.e74b783.01
0.0.0-canary.318c08c.01
0.0.0-canary.17e330d.01
0.0.0-canary.4123cce.01
0.0.0-canary.4c67dce.01
2.1.41
0.0.0-canary.42048ff.01
0.0.0-canary.b3c0cf8.01
0.0.0-canary.3915f48.01
0.0.0-canary.8a530ea.01
0.0.0-canary.4d0772e.01
0.0.0-canary.4e80a7c.01
2.1.22
0.0.0-canary.45a5f32.11
0.0.0-canary.45a5f32.01
0.0.0-canary.3b3b756.31
0.0.0-canary.3b3b756.01
0.0.0-canary.2450eb8.11
0.0.0-canary.2450eb8.01
0.0.0-canary.649174e.11
0.0.0-canary.99a4452.21
0.0.0-canary.649174e.01
0.0.0-canary.99a4452.01
0.0.0-canary.70b95a2.01
0.0.0-canary.3d209a6.01
0.0.0-canary.69f59b4.01
0.0.0-canary.22b9ab8.01
0.0.0-canary.7379dad.01
0.0.0-canary.2dbdc73.01
0.0.0-canary.1850336.01
0.0.0-canary.f69e6b0.01
0.0.0-canary.a3a7eac.01
0.0.0-canary.840675c.01
0.0.0-canary.7debfaa.01
0.0.0-canary.e8742f5.11
0.0.0-canary.e794932.01
0.0.0-canary.e8742f5.01
0.0.0-canary.0cd5338.01
0.0.0-canary.0813b9b.01
0.0.0-canary.952803d.01
0.0.0-canary.1f389e4.01
0.0.0-canary.9049f58.01
0.0.0-canary.d9ad58b.01
0.0.0-canary.8de64d7.01
0.0.0-canary.5a76e33.01
0.0.0-canary.74cf916.01
2.1.1184
0.0.0-canary.5386f4d.01
0.0.0-canary.9908539.01
0.0.0-canary.119a885.01
0.0.0-canary.48ddc5e.01
0.0.0-canary.c9627c1.01
0.0.0-canary.062c690.01
0.0.0-canary.5e59509.01
0.0.0-canary.7eb4e1e.01
0.0.0-canary.2661049.11
0.0.0-canary.2661049.01
0.0.0-canary.a8e624c.01
0.0.0-canary.b276aaf.01
0.0.0-canary.513dcf4.01
0.0.0-canary.a0a3534.01
0.0.0-canary.9dededf.31
0.0.0-canary.9dededf.21
0.0.0-canary.9dededf.11
0.0.0-canary.9dededf.01
0.0.0-canary.fee0408.01
0.0.0-canary.b127562.01
0.0.0-canary.ed74fa2.01
0.0.0-canary.e70cabc.01
0.0.0-canary.ccad833.01
0.0.0-canary.2467727.01
0.0.0-canary.2ef1293.11
0.0.0-canary.2ef1293.01
0.0.0-canary.b640602.11
0.0.0-canary.b640602.01
0.0.0-canary.96e8674.21
0.0.0-canary.96e8674.11
0.0.0-canary.96e8674.01
0.0.0-canary.4b659af.01
0.0.0-canary.2c705b4.01
0.0.0-canary.b8a6237.01
0.0.0-canary.986cea9.01
0.0.0-canary.05b1cf5.01
0.0.0-canary.d07e1e4.01
0.0.0-canary.9a71266.21
0.0.0-canary.9a71266.11
0.0.0-canary.9a71266.01
0.0.0-canary.3088ca8.01
0.0.0-canary.deed5b0.01
0.0.0-canary.2effc34.01
0.0.0-canary.1d3504b.01
0.0.0-canary.fa2f39f.01
0.0.0-canary.69bc71d.01
0.0.0-canary.97698d3.01
2.1.01
0.0.0-canary.2917daa.01
0.0.0-canary.4fc2099.01
0.0.0-canary.dcf8c03.11
0.0.0-canary.a0e0410.21
0.0.0-canary.659c743.11
0.0.0-canary.1dbbd45.21
0.0.0-canary.971253d.01
0.0.0-canary.fed6152.01
0.0.0-canary.aaaf2fa.01
0.0.0-canary.1db323f.01
0.0.0-canary.cdb104d.01
0.0.0-canary.5c80f83.01
0.0.0-canary.294feb4.01
0.0.0-canary.55e2075.01
0.0.0-canary.3a8e24a.01
0.0.0-canary.79c5c12.01
0.0.0-canary.df13289.01
0.0.0-canary.659c743.01
0.0.0-canary.1dbbd45.11
0.0.0-canary.a0e0410.11
0.0.0-canary.66f6540.01
0.0.0-canary.58fc57e.01
2.0.91
0.0.0-canary.b94debb.01
0.0.0-canary.abffccd.01
0.0.0-canary.ee6892e.01
0.0.0-canary.cd789cd.01
0.0.0-canary.7ed789a.01
0.0.0-canary.1d2aed6.01
0.0.0-canary.69f275d.01
0.0.0-canary.549dba2.01
0.0.0-canary.39fc7dc.01
0.0.0-canary.4d95fad.11
0.0.0-canary.8057c37.01
0.0.0-canary.32cd5ea.01
0.0.0-canary.87d361c.01
0.0.0-canary.c4b78ee.01
0.0.0-canary.2e98cc9.01
0.0.0-canary.e266b31.01
0.0.0-canary.17b7929.01
0.0.0-canary.a1f34dc.01
0.0.0-canary.f55f645.01
0.0.0-canary.b7558a7.01
0.0.0-canary.6e4e073.01
0.0.0-canary.777f2cc.01
0.0.0-canary.2dbfb1d.01
2.0.81
0.0.0-canary.9dca7da.01
0.0.0-canary.73dfe8c.01
0.0.0-canary.f16f299.11
0.0.0-canary.b4d0561.01
0.0.0-canary.602f682.01
0.0.0-canary.08a30a3.01
2.0.71
0.0.0-canary.55945c5.01
0.0.0-canary.cdf3e91.01
0.0.0-canary.0af264b.11
0.0.0-canary.78c977f.01
0.0.0-canary.0af264b.01
0.0.0-canary.f8e4f0b.01
0.0.0-canary.e3078c3.01
0.0.0-canary.37af1b2.01
0.0.0-canary.0b935d0.01
0.0.0-canary.f12f055.01
0.0.0-canary.d7c5910.01
0.0.0-canary.acb5af0.01
2.0.63
0.0.0-canary.a399454.01
0.0.0-canary.d787a1d.01
0.0.0-canary.67e33d8.01
0.0.0-canary.a911dd9.01
0.0.0-canary.22593cf.01
0.0.0-canary.dd07585.01
0.0.0-canary.5be6a00.01
0.0.0-canary.d4b0b6c.01
0.0.0-canary.49d4d79.01
0.0.0-canary.34b9387.01
0.0.0-canary.5cc0676.01
0.0.0-canary.2925a25.01
0.0.0-canary.ff793d9.01
0.0.0-canary.a27ac53.01
0.0.0-canary.08011c5.01
0.0.0-canary.ad6c873.01
0.0.0-canary.c0ad947.01
0.0.0-canary.413f404.01
2.0.53
0.0.0-canary.109b061.01
0.0.0-canary.66d82db.01
0.0.0-canary.a0f0132.01
0.0.0-canary.2a2b83b.01
0.0.0-canary.d78b7bb.01
0.0.0-canary.096185d.01
0.0.0-canary.9d5ef83.01
0.0.0-canary.f608c58.01
0.0.0-canary.a9d6e7c.01
0.0.0-canary.aa40d96.01
0.0.0-canary.c189a42.01
0.0.0-canary.d767d28.01
0.0.0-canary.e2fcadb.01
2.0.41
0.0.0-canary.ffb0ab3.01
0.0.0-canary.b102bb9.01
0.0.0-canary.1e7190d.01
0.0.0-canary.73f956e.01
0.0.0-canary.e3270dd.01
0.0.0-canary.4c8e718.01
0.0.0-canary.aa5bec0.01
0.0.0-canary.bd48967.01
0.0.0-canary.465e7e1.21
0.0.0-canary.465e7e1.11
0.0.0-canary.465e7e1.01
0.0.0-canary.d1e11d1.11
0.0.0-canary.d1e11d1.01
0.0.0-canary.b30cfc9.01
0.0.0-canary.3a6c203.01
0.0.0-canary.73b3b7a.01
0.0.0-canary.87693bb.11
0.0.0-canary.87693bb.01
0.0.0-canary.36c6897.01
0.0.0-canary.ca9c1e7.01
0.0.0-canary.bdd94ac.01
2.0.31
0.0.0-canary.631e52a.01
0.0.0-canary.96b08c1.01
0.0.0-canary.88403d8.01
0.0.0-canary.4a47f03.01
0.0.0-canary.a8af54e.01
0.0.0-canary.675492e.01
0.0.0-canary.1b63aac.01
0.0.0-canary.47d3251.01
0.0.0-canary.6499178.01
0.0.0-canary.d0e4cd8.01
0.0.0-canary.17cfc1d.01
0.0.0-canary.08790d0.01
0.0.0-canary.fbc7ca5.01
0.0.0-canary.9dc742c.01
0.0.0-canary.471a10b.01
0.0.0-canary.0953f07.01
0.0.0-canary.14b4f0e.01
0.0.0-canary.da2cfec.01
0.0.0-canary.02195f4.01
0.0.0-canary.a8de467.11
0.0.0-canary.a8de467.01
0.0.0-canary.fc2bf62.01
0.0.0-canary.e9f07ef.01
0.0.0-canary.ec8188c.01
0.0.0-canary.403f456.01
0.0.0-canary.66cfac0.01
0.0.0-canary.396f8bb.01
0.0.0-canary.db655de.11
0.0.0-canary.3b5ed2f.01
0.0.0-canary.0a4669b.11
0.0.0-canary.0a4669b.01
0.0.0-canary.50aa07c.01
0.0.0-canary.b0e5994.01
0.0.0-canary.4cb9c2b.01
0.0.0-canary.4c30d33.01
0.0.0-canary.fbfd207.01
0.0.0-canary.40eb0a5.11
0.0.0-canary.40eb0a5.01
0.0.0-canary.1ddabc1.11
0.0.0-canary.1ddabc1.01
0.0.0-canary.016f954.01
0.0.0-canary.98adb08.01
2.0.21
0.0.0-canary.69d2497.11
0.0.0-canary.69d2497.01
0.0.0-canary.16ee004.01
0.0.0-canary.5c3b351.01
0.0.0-canary.3e2cc31.01
0.0.0-canary.ed79452.01
0.0.0-canary.407b8e4.01
2.0.11
0.0.0-canary.63145f9.01
0.0.0-canary.801e47f.01
0.0.0-canary.d0b5703.01
0.0.0-canary.d93b398.01
0.0.0-canary.3703af8.11
0.0.0-canary.3703af8.01
0.0.0-canary.27245f3.01
0.0.0-canary.51752cd.01
0.0.0-canary.8ae44a5.11
0.0.0-canary.8ae44a5.01
0.0.0-canary.b7caf15.11
0.0.0-canary.b7caf15.01
0.0.0-canary.7cfc88b.01
0.0.0-canary.0b1303b.01
0.0.0-canary.8c0849b.01
0.0.0-canary.c237758.01
0.0.0-canary.2fcf0b5.11
0.0.0-canary.2fcf0b5.01
0.0.0-canary.1131efb.01
0.0.0-canary.af0fe55.11
0.0.0-canary.af0fe55.01
0.0.0-canary.72a6835.01
0.0.0-canary.4fb3fa6.11
0.0.0-canary.4fb3fa6.01
0.0.0-canary.43352f4.11
0.0.0-canary.43352f4.01
0.0.0-canary.9b5e4cf.01
0.0.0-canary.d9a277c.01
0.0.0-canary.2fb1140.01
0.0.0-canary.5bf099f.01
0.0.0-canary.4e310bc.01
0.0.0-canary.fd5a750.01
0.0.0-canary.872b547.01
2.0.01
0.0.0-canary.3811188.01
0.0.0-canary.9941505.01
0.0.0-canary.309a1d1.11
0.0.0-canary.309a1d1.01
1.4.11
1.4.1-12
1.4.1-01
1.4.01
1.4.0-11
1.4.0-01
1.3.11
1.3.02
1.3.0-01
1.2.41
1.2.31
1.2.3-01
1.2.21
1.2.2-01
1.2.11
1.2.01
1.1.21
1.1.11
1.1.01
1.0.51
1.0.41
1.0.31
1.0.21
1.0.11
1.0.01
0.4.21
0.4.11
0.4.01
0.3.01
0.2.41
0.2.31
0.2.21
0.2.11
0.2.01
0.1.91
0.1.81
0.1.41
0.1.31
0.1.21
0.1.11
0.1.01

Package Sidebar

Install

npm i fusion-test-utils

Weekly Downloads

821

Version

2.6.2

License

MIT

Unpacked Size

340 kB

Total Files

48

Last publish

Collaborators

  • fusion-ci