Skip to content
Snippets Groups Projects
Commit 0b5ba148 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-2626 OZG-2886 add/adjust test for reducer; adjust Naming; add Typeinformation

parent 2164325e
No related branches found
No related tags found
No related merge requests found
...@@ -12,7 +12,7 @@ export interface UserProfileAction { ...@@ -12,7 +12,7 @@ export interface UserProfileAction {
currentUser: UserProfileResource currentUser: UserProfileResource
} }
export interface LoadUserSettingsAction { export interface LoadedUserSettingsAction {
userSettings: UserSettingsResource userSettings: UserSettingsResource
} }
...@@ -29,7 +29,7 @@ export const loadUserSettings: UserSettingsActionCreator<UserProfileAction> = cr ...@@ -29,7 +29,7 @@ export const loadUserSettings: UserSettingsActionCreator<UserProfileAction> = cr
props<{ currentUser: UserProfileResource }>() props<{ currentUser: UserProfileResource }>()
); );
export const loadUserSettingsSuccess: UserSettingsActionCreator<LoadUserSettingsAction> = createAction( export const loadUserSettingsSuccess: UserSettingsActionCreator<LoadedUserSettingsAction> = createAction(
'[UserSettings/API] Load UserSettings Success', '[UserSettings/API] Load UserSettings Success',
props<{ userSettings: UserSettingsResource }>() props<{ userSettings: UserSettingsResource }>()
); );
...@@ -44,7 +44,7 @@ export const setUserSettings: UserSettingsActionCreator<SetUserSettingsAction> = ...@@ -44,7 +44,7 @@ export const setUserSettings: UserSettingsActionCreator<SetUserSettingsAction> =
props<{ userSettings: UserSettings }>() props<{ userSettings: UserSettings }>()
); );
export const setUserSettingsSuccess: UserSettingsActionCreator<LoadUserSettingsAction> = createAction( export const setUserSettingsSuccess: UserSettingsActionCreator<LoadedUserSettingsAction> = createAction(
'[UserSettings/API] Set UserSettings Success', '[UserSettings/API] Set UserSettings Success',
props<{ userSettings: UserSettingsResource }>() props<{ userSettings: UserSettingsResource }>()
); );
......
import { ApiError, createStateResource } from "@goofy-client/tech-shared"; import { ApiError, createStateResource } from '@goofy-client/tech-shared';
import { Action } from "@ngrx/store"; import { Action } from '@ngrx/store';
import { createUserProfileResource } from "libs/user-profile-shared/test/user-profile"; import { createUserProfileResource } from 'libs/user-profile-shared/test/user-profile';
import { createUserSettingsResource } from "libs/user-settings-shared/test/user-settings"; import { createUserSettings, createUserSettingsResource } from 'libs/user-settings-shared/test/user-settings';
import { createApiError } from '../../../../tech-shared/test/error'; import { createApiError } from '../../../../tech-shared/test/error';
import { UserSettingsResource } from '../user-settings.model';
import * as UserSettingsActions from './user-settings.actions'; import * as UserSettingsActions from './user-settings.actions';
import { initialUserSettingsState, settingsReducer, UserSettingsState } from "./user-settings.reducer"; import { initialUserSettingsState, userSettingsReducer, UserSettingsState } from './user-settings.reducer';
describe('User Settings Reducer', () => { describe('User Settings Reducer', () => {
describe('unknown action', () => { describe('unknown action', () => {
it('should return current state', () => { it('should return current state', () => {
const action = {} as Action; const action: Action = {} as Action;
const result = settingsReducer(initialUserSettingsState, action); const result = userSettingsReducer(initialUserSettingsState, action);
expect(result).toBe(initialUserSettingsState); expect(result).toBe(initialUserSettingsState);
}) })
...@@ -22,9 +23,9 @@ describe('User Settings Reducer', () => { ...@@ -22,9 +23,9 @@ describe('User Settings Reducer', () => {
describe('loadUserSettings', () => { describe('loadUserSettings', () => {
describe('on "loadUserSettings" action', () => { describe('on "loadUserSettings" action', () => {
it('should set loading to true', () => { it('should set loading to true', () => {
const action = UserSettingsActions.loadUserSettings({ currentUser: createUserProfileResource() }); const action: Action = UserSettingsActions.loadUserSettings({ currentUser: createUserProfileResource() });
const state: UserSettingsState = settingsReducer(initialUserSettingsState, action); const state: UserSettingsState = userSettingsReducer(initialUserSettingsState, action);
expect(state.userSettings.loading).toBeTruthy(); expect(state.userSettings.loading).toBeTruthy();
}) })
...@@ -32,17 +33,17 @@ describe('User Settings Reducer', () => { ...@@ -32,17 +33,17 @@ describe('User Settings Reducer', () => {
}) })
describe('on "loadUserSettingsSuccess"', () => { describe('on "loadUserSettingsSuccess"', () => {
const userSettings = createUserSettingsResource(); const userSettings: UserSettingsResource = createUserSettingsResource();
const action = UserSettingsActions.loadUserSettingsSuccess({ userSettings }) const action: Action = UserSettingsActions.loadUserSettingsSuccess({ userSettings });
it('should set loaded resource', () => { it('should set loaded resource', () => {
const state: UserSettingsState = settingsReducer(initialUserSettingsState, action); const state: UserSettingsState = userSettingsReducer(initialUserSettingsState, action);
expect(state.userSettings).toEqual(createStateResource(userSettings)); expect(state.userSettings).toEqual(createStateResource(userSettings));
}) })
it('should has property "notificationsSendFor"', () => { it('should has property "notificationsSendFor"', () => {
const state: UserSettingsState = settingsReducer(initialUserSettingsState, action); const state: UserSettingsState = userSettingsReducer(initialUserSettingsState, action);
expect(state.userSettings).toHaveProperty('resource.notificationsSendFor'); expect(state.userSettings).toHaveProperty('resource.notificationsSendFor');
}) })
...@@ -51,35 +52,49 @@ describe('User Settings Reducer', () => { ...@@ -51,35 +52,49 @@ describe('User Settings Reducer', () => {
describe('on "loadUserSettingsFailure"', () => { describe('on "loadUserSettingsFailure"', () => {
it('should set apiError', () => { it('should set apiError', () => {
const apiError: ApiError = createApiError(); const apiError: ApiError = createApiError();
const action = UserSettingsActions.loadUserSettingsFailure({ apiError }); const action: Action = UserSettingsActions.loadUserSettingsFailure({ apiError });
const state: UserSettingsState = settingsReducer(initialUserSettingsState, action); const state: UserSettingsState = userSettingsReducer(initialUserSettingsState, action);
expect(state.userSettings.error).toStrictEqual(apiError); expect(state.userSettings.error).toStrictEqual(apiError);
}) })
}) })
describe('setUserSettings', () => { describe('setUserSettings', () => {
describe('on "setUserSettings" action', () => { describe('on "setUserSettings" action', () => {
it('should set state resource to loading', () => { it('should set state resource to loading', () => {
const action: Action = UserSettingsActions.setUserSettings({ userSettings: createUserSettings() });
const state: UserSettingsState = userSettingsReducer(initialUserSettingsState, action);
expect(state.userSettings.loading).toBeTruthy();
}) })
}) })
describe('on "setUserSettingsSuccess" action', () => { describe('on "setUserSettingsSuccess" action', () => {
it('should set loaded resource', () => {
}) const userSettingsResource: UserSettingsResource = createUserSettingsResource();
const action: Action = UserSettingsActions.setUserSettingsSuccess({ userSettings: userSettingsResource });
it('should has property "notificationsSendFor"', () => { it('should set loaded resource', () => {
const state: UserSettingsState = userSettingsReducer(initialUserSettingsState, action);
expect(state.userSettings).toEqual(createStateResource(userSettingsResource));
}) })
}) })
describe('on "setUserSettingsFailure" action', () => { describe('on "setUserSettingsFailure" action', () => {
it('should set API Error', () => { it('should set API Error', () => {
const apiError: ApiError = createApiError();
const action: Action = UserSettingsActions.setUserSettingsFailure({ apiError });
const state: UserSettingsState = userSettingsReducer(initialUserSettingsState, action);
expect(state.userSettings.error).toStrictEqual(apiError);
}) })
}) })
}) })
}) })
\ No newline at end of file
import { createEmptyStateResource, createErrorStateResource, createStateResource, StateResource } from '@goofy-client/tech-shared'; import { createEmptyStateResource, createErrorStateResource, createStateResource, StateResource } from '@goofy-client/tech-shared';
import { createEntityAdapter, EntityAdapter } from '@ngrx/entity'; import { createEntityAdapter, EntityAdapter } from '@ngrx/entity';
import { Action, createReducer, on } from '@ngrx/store'; import { Action, ActionReducer, createReducer, on } from '@ngrx/store';
import { UserSettingsResource } from '../user-settings.model'; import { UserSettingsResource } from '../user-settings.model';
import * as UserSettingsActions from './user-settings.actions'; import * as UserSettingsActions from './user-settings.actions';
import { ApiErrorAction, LoadUserSettingsAction, SetUserSettingsAction } from './user-settings.actions'; import { ApiErrorAction, LoadedUserSettingsAction } from './user-settings.actions';
import { UserSettingsEntity } from './user-settings.models'; import { UserSettingsEntity } from './user-settings.models';
export const SETTINGS_FEATURE_KEY = 'settings'; export const SETTINGS_FEATURE_KEY = 'settings';
export interface UserSettingsPartialState { export interface UserSettingsPartialState {
readonly [SETTINGS_FEATURE_KEY]: UserSettingsState; readonly [SETTINGS_FEATURE_KEY]: UserSettingsState;
} }
...@@ -23,13 +23,13 @@ export const initialUserSettingsState: UserSettingsState = { ...@@ -23,13 +23,13 @@ export const initialUserSettingsState: UserSettingsState = {
userSettings: createEmptyStateResource() userSettings: createEmptyStateResource()
}; };
const reducer = createReducer( const reducer: ActionReducer<UserSettingsState, Action> = createReducer(
initialUserSettingsState, initialUserSettingsState,
on(UserSettingsActions.loadUserSettings, (state: UserSettingsState): UserSettingsState => ({ on(UserSettingsActions.loadUserSettings, (state: UserSettingsState): UserSettingsState => ({
...state, ...state,
userSettings: { ...state.userSettings, loading: true } userSettings: { ...state.userSettings, loading: true }
})), })),
on(UserSettingsActions.loadUserSettingsSuccess, (state: UserSettingsState, action: LoadUserSettingsAction) => ({ on(UserSettingsActions.loadUserSettingsSuccess, (state: UserSettingsState, action: LoadedUserSettingsAction) => ({
...state, ...state,
userSettings: createStateResource<UserSettingsResource>(action.userSettings) userSettings: createStateResource<UserSettingsResource>(action.userSettings)
})), })),
...@@ -37,23 +37,21 @@ const reducer = createReducer( ...@@ -37,23 +37,21 @@ const reducer = createReducer(
...state, ...state,
userSettings: createErrorStateResource<UserSettingsResource>(action.apiError) userSettings: createErrorStateResource<UserSettingsResource>(action.apiError)
})), })),
on(UserSettingsActions.setUserSettings, (state: UserSettingsState): UserSettingsState => ({ on(UserSettingsActions.setUserSettings, (state: UserSettingsState): UserSettingsState => ({
...state, ...state,
userSettings: { ...state.userSettings, loading: true } userSettings: { ...state.userSettings, loading: true }
})), })),
on(UserSettingsActions.setUserSettingsSuccess, (state: UserSettingsState, action: SetUserSettingsAction) => ({ on(UserSettingsActions.setUserSettingsSuccess, (state: UserSettingsState, action: LoadedUserSettingsAction) => ({
...state, ...state,
userSettings: { ...state.userSettings, loading: true } userSettings: createStateResource<UserSettingsResource>(action.userSettings)
})), })),
on(UserSettingsActions.setUserSettingsFailure, (state: UserSettingsState, action: ApiErrorAction) => ({ on(UserSettingsActions.setUserSettingsFailure, (state: UserSettingsState, action: ApiErrorAction) => ({
...state, ...state,
userSettings: createErrorStateResource<UserSettingsResource>(action.apiError) userSettings: createErrorStateResource<UserSettingsResource>(action.apiError)
})), }))
); );
export function settingsReducer( export function userSettingsReducer(state: UserSettingsState, action: Action): UserSettingsState {
state: UserSettingsState | undefined,
action: Action
) {
return reducer(state, action); return reducer(state, action);
} }
...@@ -11,12 +11,12 @@ import * as fromUserSettings from './+state/user-settings.reducer'; ...@@ -11,12 +11,12 @@ import * as fromUserSettings from './+state/user-settings.reducer';
CommonModule, CommonModule,
StoreModule.forFeature( StoreModule.forFeature(
fromUserSettings.SETTINGS_FEATURE_KEY, fromUserSettings.SETTINGS_FEATURE_KEY,
fromUserSettings.settingsReducer fromUserSettings.userSettingsReducer
), ),
EffectsModule.forFeature([UserSettingsEffects]), EffectsModule.forFeature([UserSettingsEffects]),
StoreModule.forFeature( StoreModule.forFeature(
fromUserSettings.SETTINGS_FEATURE_KEY, fromUserSettings.SETTINGS_FEATURE_KEY,
fromUserSettings.settingsReducer fromUserSettings.userSettingsReducer
), ),
], ],
providers: [UserSettingsFacade], providers: [UserSettingsFacade],
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment