API_TOKEN_KEY,
USER_EMAIL_KEY,
USER_FIRST_NAME_KEY,
- USER_LAST_NAME_KEY
+ USER_LAST_NAME_KEY,
+ USER_OWNER_UUID_KEY,
+ USER_UUID_KEY
} from "../../services/auth-service/auth-service";
+import { API_HOST } from "../../common/api/server-api";
-require('jest-localstorage-mock');
+import 'jest-localstorage-mock';
describe('auth-reducer', () => {
beforeAll(() => {
localStorage.setItem(USER_EMAIL_KEY, "test@test.com");
localStorage.setItem(USER_FIRST_NAME_KEY, "John");
localStorage.setItem(USER_LAST_NAME_KEY, "Doe");
+ localStorage.setItem(USER_UUID_KEY, "uuid");
+ localStorage.setItem(USER_OWNER_UUID_KEY, "ownerUuid");
const state = authReducer(initialState, actions.INIT());
expect(state).toEqual({
user: {
email: "test@test.com",
firstName: "John",
- lastName: "Doe"
+ lastName: "Doe",
+ uuid: "uuid",
+ ownerUuid: "ownerUuid"
}
});
});
it('should set user details on success fetch', () => {
const initialState = undefined;
- const userDetails = {
+ const user = {
email: "test@test.com",
- first_name: "John",
- last_name: "Doe",
- is_admin: true
+ firstName: "John",
+ lastName: "Doe",
+ uuid: "uuid",
+ ownerUuid: "ownerUuid"
};
- const state = authReducer(initialState, actions.USER_DETAILS_SUCCESS(userDetails));
+ const state = authReducer(initialState, actions.USER_DETAILS_SUCCESS(user));
expect(state).toEqual({
apiToken: undefined,
user: {
email: "test@test.com",
firstName: "John",
- lastName: "Doe"
+ lastName: "Doe",
+ uuid: "uuid",
+ ownerUuid: "ownerUuid",
}
});
expect(localStorage.getItem(API_TOKEN_KEY)).toBe("token");
});
+
+ it('should fire external url to login', () => {
+ const initialState = undefined;
+ window.location.assign = jest.fn();
+ authReducer(initialState, actions.LOGIN());
+ expect(window.location.assign).toBeCalledWith(
+ `${API_HOST}/login?return_to=${window.location.protocol}//${window.location.host}/token`
+ );
+ });
+
+ it('should fire external url to logout', () => {
+ const initialState = undefined;
+ window.location.assign = jest.fn();
+ authReducer(initialState, actions.LOGOUT());
+ expect(window.location.assign).toBeCalledWith(
+ `${API_HOST}/logout?return_to=${location.protocol}//${location.host}`
+ );
+ });
});