Switch remote config fetching to use new endpoint

This commit is contained in:
Alex Bakon 2025-08-22 11:20:57 -04:00 committed by GitHub
commit 1d37db78d2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 303 additions and 155 deletions

View file

@ -2,13 +2,20 @@
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
import * as sinon from 'sinon';
import { omit } from 'lodash';
import { normalizeAci } from '../util/normalizeAci';
import type { ConfigKeyType, ConfigListenerType } from '../RemoteConfig';
import {
getCountryCodeValue,
getBucketValue,
innerIsBucketValueEnabled,
onChange,
getValue,
isEnabled,
} from '../RemoteConfig';
import { updateRemoteConfig } from '../test-helpers/RemoteConfigStub';
describe('RemoteConfig', () => {
const aci = normalizeAci('95b9729c-51ea-4ddb-b516-652befe78062', 'test');
@ -95,4 +102,79 @@ describe('RemoteConfig', () => {
assert.strictEqual(getBucketValue(aci, flagName), 222732);
});
});
describe('#getValue', () => {
it('returns value if enabled', async () => {
await updateRemoteConfig([]);
assert.equal(getValue('desktop.internalUser'), undefined);
await updateRemoteConfig([
{ name: 'desktop.internalUser', value: 'yes' },
]);
assert.equal(getValue('desktop.internalUser'), 'yes');
});
it('does not return disabled value', async () => {
await updateRemoteConfig([]);
assert.equal(getValue('desktop.internalUser'), undefined);
});
});
describe('#isEnabled', () => {
it('is false for missing flag', async () => {
await updateRemoteConfig([]);
assert.equal(isEnabled('desktop.internalUser'), false);
});
it('is false for disabled flag', async () => {
await updateRemoteConfig([]);
assert.equal(isEnabled('desktop.internalUser'), false);
});
it('is true for enabled flag', async () => {
await updateRemoteConfig([
{ name: 'desktop.internalUser', value: 'yes' },
]);
assert.equal(isEnabled('desktop.internalUser'), true);
});
it('reflects the value of an unknown flag in the config', async () => {
assert.equal(
isEnabled('desktop.unknownFlagName' as ConfigKeyType),
false
);
await updateRemoteConfig([
{ name: 'desktop.unknownFlagName', value: 'unknownFlagValue' },
]);
assert.equal(isEnabled('desktop.unknownFlagName' as ConfigKeyType), true);
});
});
describe('#onChange', () => {
it('triggers listener on known flag change', async () => {
await updateRemoteConfig([]);
// eslint-disable-next-line @typescript-eslint/no-empty-function
const listener = sinon.spy<ConfigListenerType>(() => {});
onChange('desktop.internalUser', listener);
await updateRemoteConfig([
{ name: 'desktop.internalUser', value: 'yes' },
]);
await updateRemoteConfig([]);
await updateRemoteConfig([
{ name: 'desktop.internalUser', value: 'yes' },
]);
const calls = listener
.getCalls()
.map(call => omit(call.firstArg, 'enabledAt'));
assert.deepEqual(calls, [
{ name: 'desktop.internalUser', value: 'yes', enabled: true },
{ name: 'desktop.internalUser', enabled: false },
{ name: 'desktop.internalUser', value: 'yes', enabled: true },
]);
});
});
});