1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-05-22 01:16:07 +02:00
unleash.unleash/src/lib/features/user-settings/user-settings.e2e.test.ts
2024-10-28 16:20:07 +01:00

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',
// });
// });
// });
});