diff --git a/goofy-client/libs/user-settings-shared/src/lib/+state/user-settings.effects.spec.ts b/goofy-client/libs/user-settings-shared/src/lib/+state/user-settings.effects.spec.ts
index 42d593703a66d06dcc7a98a56f18d417ac914ace..d06134448d514db2526478ecef34554008fe9e80 100644
--- a/goofy-client/libs/user-settings-shared/src/lib/+state/user-settings.effects.spec.ts
+++ b/goofy-client/libs/user-settings-shared/src/lib/+state/user-settings.effects.spec.ts
@@ -1,4 +1,5 @@
 import { TestBed } from '@angular/core/testing';
+import { createStateResource } from '@goofy-client/tech-shared';
 import { mock } from '@goofy-client/test-utils';
 import { provideMockActions } from '@ngrx/effects/testing';
 import { Action } from '@ngrx/store';
@@ -12,13 +13,16 @@ import { UserSettingsResource } from '../user-settings.model';
 import { UserSettingsRepository } from '../user-settings.repository';
 import * as UserSettingsActions from './user-settings.actions';
 import { UserSettingsEffects } from './user-settings.effects';
+import { UserSettingsFacade } from './user-settings.facade';
 
 describe('UserSettingsEffects', () => {
 	let actions: Observable<Action>;
 	let effects: UserSettingsEffects;
 
+	const userSettingsFacade = mock(UserSettingsFacade);
 	const userSettingsRepository = mock(UserSettingsRepository);
 
+
 	beforeEach(() => {
 		TestBed.configureTestingModule({
 			imports: [NxModule.forRoot()],
@@ -29,6 +33,10 @@ describe('UserSettingsEffects', () => {
 				{
 					provide: UserSettingsRepository,
 					useValue: userSettingsRepository
+				},
+				{
+					provide: UserSettingsFacade,
+					useValue: userSettingsFacade
 				}
 			],
 		});
@@ -55,6 +63,8 @@ describe('UserSettingsEffects', () => {
 			actions = hot('-a', { a: action });
 
 			const expected = cold('-b', { b: UserSettingsActions.loadUserSettingsSuccess({ userSettings }) });
+			expect(effects.loadUserSettings$).toBeObservable(expected);
+
 		})
 
 		it('should dispatch error action', () => {
@@ -68,21 +78,23 @@ describe('UserSettingsEffects', () => {
 		const userSettings = createUserSettings();
 		const action = UserSettingsActions.setUserSettings({ userSettings });
 
+		beforeEach(() => {
+			userSettingsFacade.getUserSettings.mockReturnValue(of(createStateResource(userSettingsResource)));
+			userSettingsRepository.setUserSettings.mockReturnValue(of(userSettingsResource));
+		})
+
 		it('should call repository', () => {
 			actions = of(action);
 
 			effects.setUserSettings$.subscribe();
 
-			expect(userSettingsRepository.setUserSettings).toHaveBeenCalledWith(userSettings);
+			expect(userSettingsRepository.setUserSettings).toHaveBeenCalledWith(userSettingsResource, userSettings);
 		})
 
 		it('should dispatch success action', () => {
-			userSettingsRepository.setUserSettings.mockReturnValue(of(userSettingsResource));
-
-			actions = hot('-a', { a: action });
-
-			const expected = cold('-b', { b: UserSettingsActions.setUserSettingsSuccess({ userSettings: userSettingsResource })});
+			actions = hot('-a-|', { a: action });
 
+			const expected = cold('-a-|', { a: UserSettingsActions.setUserSettingsSuccess({ userSettings: userSettingsResource })});
 			expect(effects.setUserSettings$).toBeObservable(expected);
 		})
 
diff --git a/goofy-client/libs/user-settings-shared/src/lib/+state/user-settings.effects.ts b/goofy-client/libs/user-settings-shared/src/lib/+state/user-settings.effects.ts
index c375089e75c2931dfba89802db1fbd467b6f62fe..03c61f5f0aa8a15d6b625490c01da7dc16e892d2 100644
--- a/goofy-client/libs/user-settings-shared/src/lib/+state/user-settings.effects.ts
+++ b/goofy-client/libs/user-settings-shared/src/lib/+state/user-settings.effects.ts
@@ -1,14 +1,15 @@
 import { Injectable } from '@angular/core';
-import { Actions, createEffect, ofType } from '@ngrx/effects';
+import { Actions, concatLatestFrom, createEffect, ofType } from '@ngrx/effects';
 import { map, switchMap } from 'rxjs/operators';
 import { UserSettingsRepository } from '../user-settings.repository';
 import * as UserSettingsActions from './user-settings.actions';
+import { UserSettingsFacade } from './user-settings.facade';
 
 
 @Injectable()
 export class UserSettingsEffects {
 
-	constructor(private readonly actions$: Actions, private readonly repository: UserSettingsRepository) { }
+	constructor(private readonly actions$: Actions, private readonly repository: UserSettingsRepository, private readonly userSettingsFacade: UserSettingsFacade) { }
 
 	loadUserSettings$ = createEffect(() =>
 		this.actions$.pipe(
@@ -22,7 +23,8 @@ export class UserSettingsEffects {
 	setUserSettings$ = createEffect(() =>
 		this.actions$.pipe(
 			ofType(UserSettingsActions.setUserSettings),
-			switchMap((action) => this.repository.setUserSettings(action.userSettings).pipe(
+			concatLatestFrom(() => this.userSettingsFacade.getUserSettings()),
+			switchMap(([action, userSettingsResource]) => this.repository.setUserSettings(userSettingsResource.resource, action.userSettings).pipe(
 				map(userSettings => UserSettingsActions.setUserSettingsSuccess({ userSettings }))
 			))
 		)
diff --git a/goofy-client/libs/user-settings-shared/src/lib/user-settings.repository.spec.ts b/goofy-client/libs/user-settings-shared/src/lib/user-settings.repository.spec.ts
index 7a05a2693470871083ee7208b779cfcaa863aaf7..19185502e900584f910edb17c36673254d0a8211 100644
--- a/goofy-client/libs/user-settings-shared/src/lib/user-settings.repository.spec.ts
+++ b/goofy-client/libs/user-settings-shared/src/lib/user-settings.repository.spec.ts
@@ -1,11 +1,48 @@
-describe('UserSettingsRepository', () => {
+import { ApiRootLinkRel, ApiRootResource } from '@goofy-client/api-root-shared';
+import { mock, useFromMock } from '@goofy-client/test-utils';
+import { UserProfileResource } from '@goofy-client/user-profile-shared';
+import { ResourceFactory } from '@ngxp/rest';
+import { createApiRootResource } from 'libs/api-root-shared/test/api-root';
+import { UserProfileRepository } from "libs/user-profile-shared/src/lib/user-profile.repository";
+import { createUserProfileResource } from 'libs/user-profile-shared/test/user-profile';
+import { UserSettingsRepository } from './user-settings.repository';
 
-	it('Get user settings of current user', () => {
+const resourceFactory = mock(ResourceFactory);
+const resourceWrapper = { get: jest.fn() };
+const apiRoot: ApiRootResource = createApiRootResource([ApiRootLinkRel.SEARCH_USER_PROFILES]);
 
+beforeEach(() => {
+	// userProfileRepository = new UserProfileRepository(useFromMock(resourceFactory));
+})
+
+describe('get user settings', () => {
+	const userProfileRepository: UserProfileRepository = new UserProfileRepository(useFromMock(resourceFactory));
+	const userProfile: UserProfileResource = createUserProfileResource();
+	const repository: UserSettingsRepository = new UserSettingsRepository(useFromMock(resourceFactory));
+
+	beforeEach(() => {
+		resourceFactory.from.mockReturnValue(resourceWrapper);
 	})
 
-	it('set settings of current user', () => {
+	it('should call resource factory', () => {
+		repository.getUserSettings(userProfile);
+
+		expect(resourceFactory.from).toHaveBeenCalledWith(userProfile);
+	})
 
+	it('should get', () => {
+		// const result = userPr
 	})
 
+	it('should return result', () => {
+
+	})
+
+})
+
+describe('set user settings', () => {
+
+	it('for current user', () => {
+
+	})
 })
\ No newline at end of file
diff --git a/goofy-client/libs/user-settings-shared/src/lib/user-settings.repository.ts b/goofy-client/libs/user-settings-shared/src/lib/user-settings.repository.ts
index 807f4f75ec21350108eb1c5bcb82397328950cbb..a142e67c8d4ba45dc3a8ce37a1aafcc70fb9efe9 100644
--- a/goofy-client/libs/user-settings-shared/src/lib/user-settings.repository.ts
+++ b/goofy-client/libs/user-settings-shared/src/lib/user-settings.repository.ts
@@ -2,6 +2,7 @@ import { Injectable } from '@angular/core';
 import { UserProfileLinkRel, UserProfileResource } from '@goofy-client/user-profile-shared';
 import { ResourceFactory } from '@ngxp/rest';
 import { Observable } from 'rxjs';
+import { UserSettingsLinkRel } from './user-settings.linkrel';
 import { UserSettings, UserSettingsResource } from './user-settings.model';
 
 @Injectable({ providedIn: 'root' })
@@ -13,7 +14,7 @@ export class UserSettingsRepository {
 		return this.resourceFactory.from(userProfileResource).get(UserProfileLinkRel.SETTINGS);
 	}
 
-	public setUserSettings(userSettings: UserSettings): Observable<UserSettingsResource> {
-		return null;
+	public setUserSettings(userSettingsResource: UserSettingsResource, userSettings: UserSettings): Observable<UserSettingsResource> {
+		return this.resourceFactory.from(userSettingsResource).patch(UserSettingsLinkRel.EDIT, userSettings);
 	}
 }
\ No newline at end of file