Skip to content

Commit

Permalink
[Issue #182] Add a new user template for creating accounts.
Browse files Browse the repository at this point in the history
  • Loading branch information
mcpierce committed Mar 15, 2020
1 parent 545b6b9 commit f078f8f
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import { async, TestBed } from '@angular/core/testing';
import { EffectsModule } from '@ngrx/effects';
import { Store, StoreModule } from '@ngrx/store';
import { TranslateModule } from '@ngx-translate/core';
import { AppState, User, USER_ADMIN, USER_READER } from 'app/user';
import { AppState, USER_ADMIN, USER_READER } from 'app/user';
import {
UserAdminAllReceived,
UserAdminCreateNew,
Expand All @@ -33,6 +33,7 @@ import {
import { UserAdminEffects } from 'app/user/effects/user-admin.effects';
import { SaveUserDetails } from 'app/user/models/save-user-details';
import {
NEW_USER,
reducer,
USER_ADMIN_FEATURE_KEY
} from 'app/user/reducers/user-admin.reducer';
Expand Down Expand Up @@ -112,7 +113,7 @@ describe('UserAdminAdaptor', () => {

it('updates the current user', () => {
adaptor.current$.subscribe(response =>
expect(response).toEqual({} as User)
expect(response).toEqual(NEW_USER)
);
});
});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<p-panel [header]='"account-page.label.edit-details"|translate'
[toggleable]='false'>
<app-user-details-editor [user]='user'
(save)='saveUser($event)'></app-user-details-editor>
<app-user-details-editor [user]='user'
(save)='saveUser($event)'></app-user-details-editor>
</p-panel>
<p-panel [header]='"account-page.label.details"|translate'
[toggleable]='false'>
<app-user-details *ngIf='user'
[user]='user'></app-user-details>
<app-user-details *ngIf='user'
[user]='user'></app-user-details>
</p-panel>
<p-panel [header]='"account-page.label.preferences"|translate'
[toggleable]='false'>
<app-account-preferences *ngIf='user'
[user]='user'></app-account-preferences>
<app-account-preferences *ngIf='user'
[user]='user'></app-account-preferences>
</p-panel>
16 changes: 10 additions & 6 deletions comixed-frontend/src/app/user/reducers/user-admin.reducer.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,12 @@
* along with this program. If not, see <http://www.gnu.org/licenses>
*/

import { reducer, initialState, UserAdminState } from './user-admin.reducer';
import Any = jasmine.Any;
import {
initialState,
NEW_USER,
reducer,
UserAdminState
} from './user-admin.reducer';
import {
UserAdminAllReceived,
UserAdminClearCurrent,
Expand All @@ -32,7 +36,7 @@ import {
UserAdminSaveFailed,
UserAdminSetCurrent
} from 'app/user/actions/user-admin.actions';
import { User, USER_ADMIN, USER_READER } from 'app/user';
import { USER_ADMIN, USER_READER } from 'app/user';
import { SaveUserDetails } from 'app/user/models/save-user-details';

describe('UserAdmin Reducer', () => {
Expand All @@ -42,12 +46,12 @@ describe('UserAdmin Reducer', () => {
let state: UserAdminState;

beforeEach(() => {
state = { ...initialState };
state = initialState;
});

describe('the default state', () => {
beforeEach(() => {
state = reducer({ ...state }, {} as any);
state = reducer(state, {} as any);
});

it('clears the fetching all users flag', () => {
Expand Down Expand Up @@ -121,7 +125,7 @@ describe('UserAdmin Reducer', () => {
});

it('creates an empty user', () => {
expect(state.current).toEqual({} as User);
expect(state.current).toEqual(NEW_USER);
});
});

Expand Down
11 changes: 10 additions & 1 deletion comixed-frontend/src/app/user/reducers/user-admin.reducer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,15 @@ import { User } from 'app/user';

export const USER_ADMIN_FEATURE_KEY = 'user_admin_state';

export const NEW_USER: User = {
email: undefined,
first_login_date: undefined,
id: undefined,
last_login_date: undefined,
preferences: [],
roles: []
};

export interface UserAdminState {
fetchingAll: boolean;
users: User[];
Expand Down Expand Up @@ -57,7 +66,7 @@ export function reducer(
return { ...state, fetchingAll: false };

case UserAdminActionTypes.NewUser:
return { ...state, current: {} as User };
return { ...state, current: NEW_USER };

case UserAdminActionTypes.SetCurrent:
return { ...state, current: action.payload.user };
Expand Down

0 comments on commit f078f8f

Please sign in to comment.