diff --git a/packages/backend/src/models/user.test.js b/packages/backend/src/models/user.test.js index 90786158..51496d4a 100644 --- a/packages/backend/src/models/user.test.js +++ b/packages/backend/src/models/user.test.js @@ -3,6 +3,7 @@ import { DateTime, Duration } from 'luxon'; import appConfig from '../config/app.js'; import Base from './base.js'; import AccessToken from './access-token.js'; +import Config from './config.js'; import Connection from './connection.js'; import Execution from './execution.js'; import Flow from './flow.js'; @@ -1128,4 +1129,29 @@ describe('User model', () => { expect(await user.getInvoices()).toStrictEqual([]); }); }); + + it.todo('getApps'); + + it('createAdmin should create admin with given data and mark the installation completed', async () => { + const adminRole = await createRole({ name: 'Admin' }); + + const markInstallationCompletedSpy = vi + .spyOn(Config, 'markInstallationCompleted') + .mockResolvedValue(); + + const adminUser = await User.createAdmin({ + fullName: 'Sample admin', + email: 'admin@automatisch.io', + password: 'sample', + }); + + expect(adminUser).toMatchObject({ + fullName: 'Sample admin', + email: 'admin@automatisch.io', + roleId: adminRole.id, + }); + + expect(markInstallationCompletedSpy).toHaveBeenCalledOnce(); + expect(await adminUser.login('sample')).toBe(true); + }); });