diff --git a/src/lib/db/feature-environment-store.test.ts b/src/lib/db/feature-environment-store.test.ts new file mode 100644 index 0000000000..3761651358 --- /dev/null +++ b/src/lib/db/feature-environment-store.test.ts @@ -0,0 +1,35 @@ +import dbInit, { type ITestDb } from '../../test/e2e/helpers/database-init.js'; +import getLogger from '../../test/fixtures/no-logger.js'; +import { SYSTEM_USER_ID } from '../server-impl.js'; + +let db: ITestDb; + +beforeAll(async () => { + db = await dbInit('feature_environment_store', getLogger, { isOss: true }); + getLogger.setMuteError(true); +}); + +afterAll(async () => { + if (db) { + await db.destroy(); + } + getLogger.setMuteError(false); +}); + +test('getAllByFeatures returns correct enabled state', async () => { + await db.stores.featureToggleStore.create('default', { + name: 'test-toggle', + createdByUserId: SYSTEM_USER_ID, + }); + await db.stores.featureEnvironmentStore.addEnvironmentToFeature( + 'test-toggle', + 'development', + false, + ); + const featureEnvs = + await db.stores.featureEnvironmentStore.getAllByFeatures( + ['test-toggle'], + 'development', + ); + expect(featureEnvs[0].enabled).toBe(false); +}); diff --git a/src/lib/db/feature-environment-store.ts b/src/lib/db/feature-environment-store.ts index e6b3d8b8e5..fabab2a887 100644 --- a/src/lib/db/feature-environment-store.ts +++ b/src/lib/db/feature-environment-store.ts @@ -124,6 +124,13 @@ export class FeatureEnvironmentStore implements IFeatureEnvironmentStore { 'default', 'development', 'production', + ]) + .select([ + 'feature_name', + 'environment', + 'variants', + 'last_seen_at', + `${T.featureEnvs}.enabled`, ]); } return queryBuilder;