blob: 0901ea83ff3f85cf42f54d2205649ca9a108d93a [file]
// Copyright 2024 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import * as Common from '../../core/common/common.js';
import * as Root from '../../core/root/root.js';
import {describeWithEnvironment} from '../../testing/EnvironmentHelpers.js';
import * as Main from './main.js';
describeWithEnvironment('SettingTracker', () => {
let settingTracker: Main.SettingTracker.SettingTracker|null;
afterEach(() => {
settingTracker?.dispose();
});
it('resets console-insights-onboarding-finished if console-insights-enabled becomes true', async () => {
Common.Settings.moduleSetting('console-insights-enabled').set(true);
Common.Settings.moduleSetting('console-insights-enabled').set(false);
Common.Settings.Settings.instance().createLocalSetting('console-insights-onboarding-finished', false).set(true);
// Force instance that will track the settings.
settingTracker = new Main.SettingTracker.SettingTracker();
Common.Settings.moduleSetting('console-insights-enabled').set(true);
assert.strictEqual(
Common.Settings.Settings.instance().createLocalSetting('console-insights-onboarding-finished', false).get(),
false);
});
it('sets console-insights-enabled to false if ci_disabledByDefault is true', async () => {
Common.Settings.moduleSetting('console-insights-enabled').set(true);
const toggledSetting = Common.Settings.Settings.instance().createLocalSetting('console-insights-toggled', false);
toggledSetting.set(false);
Root.Runtime.Runtime.setQueryParamForTesting('ci_disabledByDefault', 'true');
settingTracker = new Main.SettingTracker.SettingTracker();
assert.strictEqual(Common.Settings.moduleSetting('console-insights-enabled').get(), false);
assert.strictEqual(toggledSetting.get(), false);
});
it('sets console-insights-enabled to true if ci_disabledByDefault is false', async () => {
Common.Settings.moduleSetting('console-insights-enabled').set(false);
const toggledSetting = Common.Settings.Settings.instance().createLocalSetting('console-insights-toggled', false);
toggledSetting.set(false);
Root.Runtime.Runtime.setQueryParamForTesting('ci_disabledByDefault', 'false');
settingTracker = new Main.SettingTracker.SettingTracker();
assert.strictEqual(Common.Settings.moduleSetting('console-insights-enabled').get(), true);
assert.strictEqual(toggledSetting.get(), false);
});
it('does not change console-insights-enabled if console-insights-toggled is true', async () => {
Common.Settings.moduleSetting('console-insights-enabled').set(true);
Common.Settings.Settings.instance().createLocalSetting('console-insights-toggled', false).set(true);
Root.Runtime.Runtime.setQueryParamForTesting('ci_disabledByDefault', 'true');
settingTracker = new Main.SettingTracker.SettingTracker();
assert.strictEqual(Common.Settings.moduleSetting('console-insights-enabled').get(), true);
});
});