mirror of
https://github.com/immich-app/immich
synced 2025-11-14 17:36:12 +00:00
feat(web): onboarding (#6066)
* feat(web): onboarding * feat: openapi * feat: modulization * feat: page advancing * Animation * Add storage templaete settings * sql * more style * Theme * information and styling * hide/show table * Styling * Update user property * fix test * fix test: * fix e2e * test * Update web/src/lib/components/onboarding-page/onboarding-hello.svelte Co-authored-by: bo0tzz <git@bo0tzz.me> * naming * use System Metadata * better return type * onboarding using server metadata * revert previous changes in user entity * sql * test web * fix test server * server/web test * more test * consolidate color theme change logic * consolidate save button to storage template * merge main * fix web --------- Co-authored-by: bo0tzz <git@bo0tzz.me>
This commit is contained in:
parent
f8d64be13c
commit
18f59f78e3
35 changed files with 698 additions and 111 deletions
|
|
@ -5,6 +5,7 @@ import { assetApi } from './asset-api';
|
|||
import { authApi } from './auth-api';
|
||||
import { libraryApi } from './library-api';
|
||||
import { partnerApi } from './partner-api';
|
||||
import { serverInfoApi } from './server-info-api';
|
||||
import { sharedLinkApi } from './shared-link-api';
|
||||
import { userApi } from './user-api';
|
||||
|
||||
|
|
@ -14,6 +15,7 @@ export const api = {
|
|||
apiKeyApi,
|
||||
assetApi,
|
||||
libraryApi,
|
||||
serverInfoApi,
|
||||
sharedLinkApi,
|
||||
albumApi,
|
||||
userApi,
|
||||
|
|
|
|||
10
server/test/api/server-info-api.ts
Normal file
10
server/test/api/server-info-api.ts
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
import { ServerConfigDto } from '@app/domain';
|
||||
import request from 'supertest';
|
||||
|
||||
export const serverInfoApi = {
|
||||
getConfig: async (server: any) => {
|
||||
const res = await request(server).get('/server-info/config');
|
||||
expect(res.status).toBe(200);
|
||||
return res.body as ServerConfigDto;
|
||||
},
|
||||
};
|
||||
|
|
@ -98,6 +98,7 @@ describe(`${ServerInfoController.name} (e2e)`, () => {
|
|||
trashDays: 30,
|
||||
isInitialized: true,
|
||||
externalDomain: '',
|
||||
isOnboarded: false,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -167,4 +168,19 @@ describe(`${ServerInfoController.name} (e2e)`, () => {
|
|||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('POST /server-info/admin-onboarding', () => {
|
||||
it('should set admin onboarding', async () => {
|
||||
const config = await api.serverInfoApi.getConfig(server);
|
||||
expect(config.isOnboarded).toBe(false);
|
||||
|
||||
const { status } = await request(server)
|
||||
.post('/server-info/admin-onboarding')
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||
expect(status).toBe(204);
|
||||
|
||||
const newConfig = await api.serverInfoApi.getConfig(server);
|
||||
expect(newConfig.isOnboarded).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ export * from './smart-info.repository.mock';
|
|||
export * from './storage.repository.mock';
|
||||
export * from './system-config.repository.mock';
|
||||
export * from './system-info.repository.mock';
|
||||
export * from './system-metadata.repository.mock';
|
||||
export * from './tag.repository.mock';
|
||||
export * from './user-token.repository.mock';
|
||||
export * from './user.repository.mock';
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
import { ISystemMetadataRepository } from '@app/domain';
|
||||
|
||||
export const newSystemMetadataRepositoryMock = (): jest.Mocked<ISystemMetadataRepository> => {
|
||||
return {
|
||||
get: jest.fn(),
|
||||
set: jest.fn(),
|
||||
};
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue