1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-31 00:16:47 +01:00

fix: variant tests more stable

This commit is contained in:
ivaosthu 2019-01-24 08:39:21 +01:00 committed by Ivar Conradi Østhus
parent 8c12ead2ae
commit 24ca56e041
4 changed files with 58 additions and 9 deletions

View File

@ -238,3 +238,37 @@ test('invalid feature names should have error msg', t => {
); );
}); });
}); });
test('should not allow variants with same name when creating feature flag', t => {
t.plan(0);
const { request, base } = getSetup();
return request
.post(`${base}/api/admin/features`)
.send({
name: 'ts',
strategies: [{ name: 'default' }],
variants: [{ name: 'variant1' }, { name: 'variant1' }],
})
.set('Content-Type', 'application/json')
.expect(403);
});
test('should not allow variants with same name when updating feature flag', t => {
t.plan(0);
const { request, featureToggleStore, base } = getSetup();
featureToggleStore.addFeature({
name: 'ts',
strategies: [{ name: 'default' }],
});
return request
.put(`${base}/api/admin/features/ts`)
.send({
name: 'ts',
strategies: [{ name: 'default' }],
variants: [{ name: 'variant1' }, { name: 'variant1' }],
})
.set('Content-Type', 'application/json')
.expect(403);
});

View File

@ -3,14 +3,14 @@
const test = require('ava'); const test = require('ava');
const { setupApp } = require('./../../helpers/test-helper'); const { setupApp } = require('./../../helpers/test-helper');
test.serial('returns three feature toggles', async t => { test.serial('returns list of feature toggles', async t => {
const { request, destroy } = await setupApp('feature_api_serial'); const { request, destroy } = await setupApp('feature_api_serial');
return request return request
.get('/api/admin/features') .get('/api/admin/features')
.expect('Content-Type', /json/) .expect('Content-Type', /json/)
.expect(200) .expect(200)
.expect(res => { .expect(res => {
t.true(res.body.features.length === 3); t.true(res.body.features.length === 4);
}) })
.then(destroy); .then(destroy);
}); });
@ -51,9 +51,9 @@ test.serial('creates new feature toggle', async t => {
}); });
test.serial('creates new feature toggle with variants', async t => { test.serial('creates new feature toggle with variants', async t => {
t.plan(1); t.plan(0);
const { request, destroy } = await setupApp('feature_api_serial'); const { request, destroy } = await setupApp('feature_api_serial');
await request return request
.post('/api/admin/features') .post('/api/admin/features')
.send({ .send({
name: 'com.test.variants', name: 'com.test.variants',
@ -61,9 +61,16 @@ test.serial('creates new feature toggle with variants', async t => {
strategies: [{ name: 'default' }], strategies: [{ name: 'default' }],
variants: [{ name: 'variant1' }, { name: 'variant2' }], variants: [{ name: 'variant1' }, { name: 'variant2' }],
}) })
.set('Content-Type', 'application/json'); .set('Content-Type', 'application/json')
await request .expect(201)
.get('/api/admin/features/com.test.variants') .then(destroy);
});
test.serial('fetch feature toggle with variants', async t => {
t.plan(1);
const { request, destroy } = await setupApp('feature_api_serial');
return request
.get('/api/admin/features/feature.with.variants')
.expect(res => { .expect(res => {
t.true(res.body.variants.length === 2); t.true(res.body.variants.length === 2);
}) })

View File

@ -3,14 +3,14 @@
const test = require('ava'); const test = require('ava');
const { setupApp } = require('./../../helpers/test-helper'); const { setupApp } = require('./../../helpers/test-helper');
test.serial('returns three feature toggles', async t => { test.serial('returns four feature toggles', async t => {
const { request, destroy } = await setupApp('feature_api_client'); const { request, destroy } = await setupApp('feature_api_client');
return request return request
.get('/api/client/features') .get('/api/client/features')
.expect('Content-Type', /json/) .expect('Content-Type', /json/)
.expect(200) .expect(200)
.expect(res => { .expect(res => {
t.true(res.body.features.length === 3); t.true(res.body.features.length === 4);
}) })
.then(destroy); .then(destroy);
}); });

View File

@ -120,6 +120,14 @@
} }
} }
] ]
},
{
"name": "feature.with.variants",
"description": "A feature toggle with watiants",
"enabled": true,
"archived": false,
"strategies": [{ "name": "default" }],
"variants": [{ "name": "control" }, { "name": "new" }]
} }
] ]
} }