grafana/public/app/features/folders/state/reducers.test.ts

68 lines
1.8 KiB
TypeScript
Raw Normal View History

import { FolderDTO, FolderState } from 'app/types';
import { reducerTester } from '../../../../test/core/redux/reducerTester';
import { folderReducer, initialState, loadFolder, setFolderTitle } from './reducers';
2018-09-12 05:18:24 -05:00
2018-09-13 00:30:27 -05:00
function getTestFolder(): FolderDTO {
return {
id: 1,
title: 'test folder',
uid: 'asd',
url: 'url',
canSave: true,
canEdit: true,
canAdmin: true,
canDelete: true,
2018-09-13 00:30:27 -05:00
version: 0,
created: '',
createdBy: '',
hasAcl: false,
updated: '',
updatedBy: '',
2018-09-13 00:30:27 -05:00
};
}
2018-09-12 05:18:24 -05:00
describe('folder reducer', () => {
describe('when loadFolder is dispatched', () => {
it('should load folder and set hasChanged to false', () => {
reducerTester<FolderState>()
.givenReducer(folderReducer, { ...initialState, hasChanged: true })
.whenActionIsDispatched(loadFolder(getTestFolder()))
.thenStateShouldEqual({
...initialState,
hasChanged: false,
...getTestFolder(),
});
});
2018-09-13 00:30:27 -05:00
});
2018-09-12 05:18:24 -05:00
describe('when setFolderTitle is dispatched', () => {
describe('and title has length', () => {
it('then state should be correct', () => {
reducerTester<FolderState>()
.givenReducer(folderReducer, { ...initialState })
.whenActionIsDispatched(setFolderTitle('ready'))
.thenStateShouldEqual({
...initialState,
hasChanged: true,
title: 'ready',
});
});
});
describe('and title has no length', () => {
it('then state should be correct', () => {
reducerTester<FolderState>()
.givenReducer(folderReducer, { ...initialState })
.whenActionIsDispatched(setFolderTitle(''))
.thenStateShouldEqual({
...initialState,
hasChanged: false,
title: '',
});
});
});
});
2018-09-12 05:18:24 -05:00
});