mirror of
https://github.com/Unleash/unleash.git
synced 2025-05-22 01:16:07 +02:00
112 lines
3.4 KiB
TypeScript
112 lines
3.4 KiB
TypeScript
import dbInit, { type ITestDb } from '../../../test/e2e/helpers/database-init';
|
|
import {
|
|
type IUnleashTest,
|
|
setupAppWithAuth,
|
|
} from '../../../test/e2e/helpers/test-helper';
|
|
import getLogger from '../../../test/fixtures/no-logger';
|
|
import type { IUserStore } from '../../types';
|
|
|
|
let app: IUnleashTest;
|
|
let db: ITestDb;
|
|
let userStore: IUserStore;
|
|
|
|
const loginUser = (email: string) => {
|
|
return app.request
|
|
.post(`/auth/demo/login`)
|
|
.send({
|
|
email,
|
|
})
|
|
.expect(200);
|
|
};
|
|
|
|
beforeAll(async () => {
|
|
db = await dbInit('user_settings', getLogger);
|
|
userStore = db.stores.userStore;
|
|
app = await setupAppWithAuth(
|
|
db.stores,
|
|
{
|
|
experimental: {
|
|
flags: {
|
|
userSettings: true,
|
|
},
|
|
},
|
|
},
|
|
db.rawDatabase,
|
|
);
|
|
});
|
|
|
|
afterAll(async () => {
|
|
getLogger.setMuteError(false);
|
|
await app.destroy();
|
|
await db.destroy();
|
|
});
|
|
|
|
// beforeEach(async () => {
|
|
// await db.stores.featureToggleStore.deleteAll();
|
|
// await db.stores.userStore.deleteAll();
|
|
// await db.stores.eventStore.deleteAll();
|
|
// await db.stores.userStore.deleteAll();
|
|
// });
|
|
|
|
describe('UserSettingsController', () => {
|
|
test('should return user settings', async () => {
|
|
const { body: user } = await loginUser('test@example.com');
|
|
// console.log({user})
|
|
// await db.stores.userStore.setSettings(1, {
|
|
// 'productivity-insights-email': 'true',
|
|
// });
|
|
const { body } = await app.request
|
|
.put(`/api/admin/user/settings`)
|
|
.send({
|
|
key: 'productivity-insights-email',
|
|
value: 'new_value',
|
|
})
|
|
.expect(204);
|
|
|
|
const res = await app.request
|
|
.get('/api/admin/user/settings')
|
|
.expect(200);
|
|
|
|
expect(res.body).toEqual({ 'productivity-insights-email': 'true' });
|
|
});
|
|
|
|
// test('should return empty object if no settings are available', async () => {
|
|
// const res = await app.request
|
|
// .get('/api/admin/user/settings')
|
|
// // .set('Authorization', `Bearer ${userId}`)
|
|
// .expect(200);
|
|
|
|
// expect(res.body).toEqual({});
|
|
// });
|
|
|
|
// describe('PUT /settings/:key', () => {
|
|
// const allowedKey = 'productivity-insights-email';
|
|
|
|
// test('should update user setting if key is valid', async () => {
|
|
// const res = await app.request
|
|
// .put(`/api/admin/user/settings/${allowedKey}`)
|
|
// // .set('Authorization', `Bearer ${userId}`)
|
|
// .send({ value: 'new_value' })
|
|
// .expect(204);
|
|
|
|
// expect(res.body).toEqual({});
|
|
|
|
// const updatedSetting =
|
|
// await db.stores.userStore.getSettings(userId);
|
|
// expect(updatedSetting.value).toEqual('new_value');
|
|
// });
|
|
|
|
// test('should return 400 for invalid setting key', async () => {
|
|
// const res = await app.request
|
|
// .put(`/api/admin/user/settings/invalid-key`)
|
|
// // .set('Authorization', `Bearer ${userId}`)
|
|
// .send({ value: 'some_value' })
|
|
// .expect(400);
|
|
|
|
// expect(res.body).toEqual({
|
|
// message: 'Invalid setting key',
|
|
// });
|
|
// });
|
|
// });
|
|
});
|