From cbc89f6a92fa8f988ab9513cebeff823c597b669 Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Wed, 1 Nov 2023 21:18:19 +0100 Subject: [PATCH] feat: sort parent options alphabetically (#5238) --- .../dependent-features-read-model.ts | 3 ++- .../dependent.features.e2e.test.ts | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/lib/features/dependent-features/dependent-features-read-model.ts b/src/lib/features/dependent-features/dependent-features-read-model.ts index 34fb868f09..86dbbd554b 100644 --- a/src/lib/features/dependent-features/dependent-features-read-model.ts +++ b/src/lib/features/dependent-features/dependent-features-read-model.ts @@ -77,7 +77,8 @@ export class DependentFeaturesReadModel implements IDependentFeaturesReadModel { .andWhere('features.name', '!=', child) .andWhere('dependent_features.child', null) .andWhere('features.archived_at', null) - .select('features.name'); + .select('features.name') + .orderBy('features.name'); return rows.map((item) => item.name); } diff --git a/src/lib/features/dependent-features/dependent.features.e2e.test.ts b/src/lib/features/dependent-features/dependent.features.e2e.test.ts index d5cb4ad1b5..026f4989e2 100644 --- a/src/lib/features/dependent-features/dependent.features.e2e.test.ts +++ b/src/lib/features/dependent-features/dependent.features.e2e.test.ts @@ -55,6 +55,7 @@ afterAll(async () => { beforeEach(async () => { await db.stores.dependentFeaturesStore.deleteAll(); + await db.stores.featureToggleStore.deleteAll(); }); const addFeatureDependency = async ( @@ -136,6 +137,20 @@ test('should add and delete feature dependencies', async () => { ]); }); +test('should sort parent options alphabetically', async () => { + const parent1 = `a${uuidv4()}`; + const parent2 = `c${uuidv4()}`; + const parent3 = `b${uuidv4()}`; + const child = uuidv4(); + await app.createFeature(parent1); + await app.createFeature(parent2); + await app.createFeature(parent3); + await app.createFeature(child); + + const { body: parentOptions } = await getParentOptions(child); + expect(parentOptions).toStrictEqual([parent1, parent3, parent2]); +}); + test('should not allow to add grandparent', async () => { const grandparent = uuidv4(); const parent = uuidv4();