Test actions
Actions can be tested by calling NgStateTestBed.createActions method. createActions has required param actions and two params with default values: initialState with value {} and statePath with value []. This means that for most of situations we can pass just actions type and test application in localized state. But for more complex scenarios we can pass initial state and path.
it('should return actions', () => {
    const initialState = { todos: [] };
    initialState.todos.push({ description: 'test description' });
    const actions = NgStateTestBed.createActions<TestActions>(TestActions); // in this case actions will be created with state = {};
    // OR
    const actions = NgStateTestBed.createActions(TestActions, initialState, ['todos', 0]);
    // OR
    const actions = NgStateTestBed.createSignalActions(TestActions, initialState, ['todos', 0]);
    expect(actions.todoDescription).toEqual('test description');
});where
- first param is - initialStateis object or class
- second param is - statePathto bind actions to
- third param is - actionsclass
createActionsas well ascreateSignalActionstakes into consideration injectable actions. Dependenices are mocked and injected according to Angular TestBed.
Last updated
Was this helpful?
