fleet/frontend/test
Zachary Wasserman 0b7747bef0
Fix pack and query UI issues in Fleet 2.0 (#1829)
Replaces (and appropriately refactors) a number of endpoints that were removed long ago when we decided to kill the UI with the fleetctl release. We turned out not to do this, and now need to restore these missing endpoints.

This is not a straight up replacement of the existing code because of refactoring to the DB schemas that was also done in the migration.

Most of the replaced code was removed in #1670 and #1686.

Fixes #1811, fixes #1810
2018-06-15 10:13:11 -04:00
..
mocks Fix pack and query UI issues in Fleet 2.0 (#1829) 2018-06-15 10:13:11 -04:00
envSetup.tests.js Fix JS test warnings (#1209) 2017-02-13 18:19:00 -05:00
helpers.jsx removing license code (#1551) 2017-09-01 10:42:46 -06:00
index.js Select targets tests (#1307) 2017-03-03 10:05:03 -05:00
loaderMock.js Clean and organize mocha test configurations (#202) 2016-09-20 09:42:46 -04:00
README.md Add Front-end Documentation (#1373) 2017-03-10 17:13:29 -05:00
stubs.js Remove decorators and osquery config from the UI (#1769) 2018-05-08 11:03:32 -06:00
target_mock.js Select targets tests (#1307) 2017-03-03 10:05:03 -05:00

Kolide Tests

The test directory contains helper functions, request mocks, and entity stubs for use in test files throughout the application. The test files for components and app functions are located in the same directory as the files they test.

The default export from the test directory includes Helpers, Mocks, and Stubs.

Helpers

import Test from 'test';

const helpers = Test.Helpers;

The helpers file includes functions that make certain test actions easy, such as mounting a connected component, building a mock redux store, and filling in a form input.

Below are a couple particularly useful test helpers.

fillInFormInput

This function is useful when the component renders a form that needs to be filled out. The function takes to parameters, the form input element and the value to be filled in.

Example

reduxMockStore

This function is useful for creating a fake redux store. This store will allow actions to be dispatched, keep a collection of dispatched actions, and hold state.

Example using mockStore.dispatch

Example using mockStore.dispatch

Example mounting a connected component and checking dispatched actions

connectedComponent

The connectedComponent function is useful for mounting connected components in tests (usually Page components). This helper wraps the component in a Provider component and sets a mock store as the redux store for the connected component. It takes 2 parameters, the component class and an options hash. The options has 2 optional keys, mockStore and props. Keep in mind that when mounting a connected component mapStateToProps will run and the component will receive the props assigned in the mapStateToProps function.

Example

Example

Mocks

import Test from 'test';

const mocks = Test.Mocks;

Documentation on request mocks can be found in the Kolide Request Mock Documentation

Stubs

import Test from 'test';

const stubs = Test.Stubs;

The Stubs file contains objects that represent entities used in the Kolide application. These re-usable objects help keep the code DRY.