1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-23 00:22:19 +01:00

fix: fix bulk removal of tags (#3651)

This commit is contained in:
Jaanus Sellin 2023-04-28 14:49:34 +03:00 committed by GitHub
parent 10fee99467
commit 2a6cfc434f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 54 additions and 7 deletions

View File

@ -187,13 +187,15 @@ class FeatureTagStore implements IFeatureTagStore {
}
async tagFeatures(featureTags: IFeatureTag[]): Promise<IFeatureAndTag[]> {
const rows = await this.db(TABLE)
.insert(featureTags.map(this.featureTagToRow))
.returning(COLUMNS)
.onConflict(COLUMNS)
.ignore();
if (rows) {
return rows.map(this.rowToFeatureAndTag);
if (featureTags.length !== 0) {
const rows = await this.db(TABLE)
.insert(featureTags.map(this.featureTagToRow))
.returning(COLUMNS)
.onConflict(COLUMNS)
.ignore();
if (rows) {
return rows.map(this.rowToFeatureAndTag);
}
}
return [];
}

View File

@ -161,3 +161,48 @@ test('Can tag features', async () => {
expect(res.body).toMatchObject({ tags: [addedTag] });
expect(res2.body).toMatchObject({ tags: [addedTag] });
});
test('Can bulk remove tags', async () => {
const featureName = 'test.feature3';
const featureName2 = 'test.feature4';
const addedTag = {
value: 'TeamRed',
type: 'simple',
};
await app.request.post('/api/admin/projects/default/features').send({
name: featureName,
type: 'killswitch',
enabled: true,
strategies: [{ name: 'default' }],
});
await app.request.post('/api/admin/projects/default/features').send({
name: featureName2,
type: 'killswitch',
enabled: true,
strategies: [{ name: 'default' }],
});
await app.request
.put('/api/admin/tags/features')
.send({
features: [featureName, featureName2],
tags: {
addedTags: [addedTag],
removedTags: [],
},
})
.expect(200);
await app.request
.put('/api/admin/tags/features')
.send({
features: [featureName, featureName2],
tags: {
addedTags: [],
removedTags: [addedTag],
},
})
.expect(200);
});