influxdb/ui/test/shared/reducers/auth.test.js

100 lines
2.5 KiB
JavaScript

import {default as authReducer, initialState} from 'shared/reducers/auth'
import {
authExpired,
authRequested,
meGetRequested,
meGetCompleted,
} from 'shared/actions/auth'
const defaultAuth = {
links: [
{
name: 'github',
label: 'Github',
login: '/oauth/github/login',
logout: '/oauth/github/logout',
callback: '/oauth/github/callback',
},
],
}
const defaultMe = {
name: 'wishful_modal@overlay.technology',
links: {
self: '/chronograf/v1/users/wishful_modal@overlay.technology',
},
}
describe('Shared.Reducers.authReducer', () => {
it('should handle AUTH_EXPIRED', () => {
const reducedState = authReducer(initialState, authExpired(defaultAuth))
expect(reducedState.links[0]).toEqual(defaultAuth.links[0])
expect(reducedState.me).toBe(null)
expect(reducedState.isMeLoading).toBe(false)
expect(reducedState.isAuthLoading).toBe(false)
})
it('should handle AUTH_REQUESTED', () => {
const reducedState = authReducer(initialState, authRequested())
expect(reducedState.isAuthLoading).toBe(true)
})
it('should handle ME_GET_REQUESTED', () => {
const reducedState = authReducer(initialState, meGetRequested())
expect(reducedState.isMeLoading).toBe(true)
})
it('should handle ME_GET_COMPLETED with auth', () => {
const loadingState = {
...initialState,
isAuthLoading: true,
isMeLoading: true,
}
const meWithAuth = {
...defaultMe,
roles: [{name: 'member', organization: '1'}],
role: 'member',
currentOrganization: {name: 'bob', id: '1'},
}
const reducedState = authReducer(
loadingState,
meGetCompleted({
me: meWithAuth,
auth: defaultAuth,
logoutLink: '/oauth/logout',
})
)
expect(reducedState.me).toEqual(meWithAuth)
expect(reducedState.links[0]).toEqual(defaultAuth.links[0])
expect(reducedState.isAuthLoading).toBe(false)
expect(reducedState.isMeLoading).toBe(false)
})
it('should handle ME_GET_COMPLETED without auth', () => {
const loadingState = {
...initialState,
isAuthLoading: true,
isMeLoading: true,
}
const reducedState = authReducer(
loadingState,
meGetCompleted({
me: defaultMe,
auth: defaultAuth,
})
)
expect(reducedState.me).toEqual(defaultMe)
expect(reducedState.links[0]).toEqual(defaultAuth.links[0])
expect(reducedState.isAuthLoading).toBe(false)
expect(reducedState.isMeLoading).toBe(false)
})
})