influxdb/ui/test/shared/reducers/services.test.ts

61 lines
1.4 KiB
TypeScript

import reducer, {initialState} from 'src/shared/reducers/services'
import {
addService,
loadServices,
deleteService,
updateService,
} from 'src/shared/actions/services'
import {Service} from 'src/types'
import {service} from 'test/resources'
const services = (): Service[] => {
return reducer(initialState, addService(service))
}
describe('Shared.Reducers.services', () => {
describe('LOAD_SERVICES', () => {
it('correctly loads services', () => {
const s1 = {...service, id: '1'}
const s2 = {...service, id: '2'}
const expected = [s1, s2]
const actual = reducer(initialState, loadServices(expected))
expect(actual).toEqual(expected)
})
})
describe('ADD_SERVICE', () => {
it('can add a service', () => {
const expected = service
const [actual] = reducer(initialState, addService(service))
expect(actual).toEqual(expected)
})
})
describe('DELETE_SERVICE', () => {
it('can delete a service', () => {
const state = services()
const actual = reducer(state, deleteService(service))
expect(actual).toEqual([])
})
})
describe('UPDATE_SERVICE', () => {
it('can update a service', () => {
const name = 'updated name'
const type = 'updated type'
const expected = {...service, name, type}
const state = services()
const [actual] = reducer(state, updateService(expected))
expect(actual).toEqual(expected)
})
})
})