From b09974b2ec7611709c5c3c1c9c4ba3baf8420451 Mon Sep 17 00:00:00 2001 From: Fredrik Oseberg Date: Wed, 2 Feb 2022 11:00:48 +0100 Subject: [PATCH] fix: add test for adding a toggle with impression data on a different project --- src/lib/schema/feature-schema.test.ts | 10 +++++++ .../api/admin/project/features.e2e.test.ts | 29 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/lib/schema/feature-schema.test.ts b/src/lib/schema/feature-schema.test.ts index c5f7eaaf38..236fdb047e 100644 --- a/src/lib/schema/feature-schema.test.ts +++ b/src/lib/schema/feature-schema.test.ts @@ -4,6 +4,7 @@ test('should require URL firendly name', () => { const toggle = { name: 'io`dasd', enabled: false, + impressionData: false, strategies: [{ name: 'default' }], }; @@ -15,6 +16,7 @@ test('should be valid toggle name', () => { const toggle = { name: 'app.name', enabled: false, + impressionData: false, strategies: [{ name: 'default' }], }; @@ -28,6 +30,7 @@ test('should strip extra variant fields', () => { type: 'release', enabled: false, stale: false, + impressionData: false, strategies: [{ name: 'default' }], variants: [ { @@ -49,6 +52,7 @@ test('should allow weightType=fix', () => { type: 'release', project: 'default', enabled: false, + impressionData: false, stale: false, archived: false, strategies: [{ name: 'default' }], @@ -71,6 +75,7 @@ test('should disallow weightType=unknown', () => { name: 'app.name', type: 'release', enabled: false, + impressionData: false, stale: false, archived: false, strategies: [{ name: 'default' }], @@ -95,6 +100,7 @@ test('should be possible to define variant overrides', () => { type: 'release', project: 'some', enabled: false, + impressionData: false, stale: false, archived: false, strategies: [{ name: 'default' }], @@ -125,6 +131,7 @@ test('variant overrides must have corect shape', async () => { name: 'app.name', type: 'release', enabled: false, + impressionData: false, stale: false, strategies: [{ name: 'default' }], variants: [ @@ -154,6 +161,7 @@ test('should keep constraints', () => { type: 'release', project: 'default', enabled: false, + impressionData: false, stale: false, archived: false, strategies: [ @@ -180,6 +188,7 @@ test('should not accept empty constraint values', () => { name: 'app.constraints.empty.value', type: 'release', enabled: false, + impressionData: false, stale: false, strategies: [ { @@ -206,6 +215,7 @@ test('should not accept empty list of constraint values', () => { name: 'app.constraints.empty.value.list', type: 'release', enabled: false, + impressionData: false, stale: false, strategies: [ { diff --git a/src/test/e2e/api/admin/project/features.e2e.test.ts b/src/test/e2e/api/admin/project/features.e2e.test.ts index 6681f15a82..d350182bb6 100644 --- a/src/test/e2e/api/admin/project/features.e2e.test.ts +++ b/src/test/e2e/api/admin/project/features.e2e.test.ts @@ -2037,3 +2037,32 @@ test('Can update impression data with PUT', async () => { expect(res.body.impressionData).toBe(false); }); }); + +test('Can create toggle with impression data on different project', async () => { + db.stores.projectStore.create({ + id: 'impression-data', + name: 'ImpressionData', + description: '', + }); + + const toggle = { + name: 'project.impression.data', + impressionData: true, + }; + + await app.request + .post('/api/admin/projects/impression-data/features') + .send(toggle) + .expect(201) + .expect((res) => { + expect(res.body.impressionData).toBe(true); + }); + + await app.request + .put(`/api/admin/projects/impression-data/features/${toggle.name}`) + .send({ ...toggle, impressionData: false }) + .expect(200) + .expect((res) => { + expect(res.body.impressionData).toBe(false); + }); +});