本文整理汇总了TypeScript中app/storage/async-settings.AsyncSettings类的典型用法代码示例。如果您正苦于以下问题:TypeScript AsyncSettings类的具体用法?TypeScript AsyncSettings怎么用?TypeScript AsyncSettings使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了AsyncSettings类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: it
it("should work with multiple concurrent changes", async function() {
// setup
asyncSettings = createAsyncSettings({
applyDefault: "DEFAULT:applyDefault",
applyUserValue: "DEFAULT:applyUserValue",
effectivelyUnchanged: "oldValueAndDefault",
});
const dChanges = defer<IStorageChanges>();
const changeListener = sinon.spy((changes) => {
dChanges.resolve(changes);
});
asyncSettings.onChanged.addListener(changeListener);
asyncSettings.startup();
await asyncSettings.whenReady;
stubbedStorage.local.set.resolves();
// exercise
stubbedStorage.onChanged.trigger({
applyDefault: {},
applyUserValue: {newValue: "myNewUserValue"},
effectivelyUnchanged: {oldValue: "oldValueAndDefault"},
settingWithoutDefaultValue: {newValue: "something"},
});
const changes = await dChanges.promise;
// verify
assert.deepEqual(changes, {
applyDefault: {newValue: "DEFAULT:applyDefault"},
applyUserValue: {newValue: "myNewUserValue"},
});
});
开发者ID:RequestPolicyContinued,项目名称:requestpolicy,代码行数:31,代码来源:test-async-settings.ts
示例2: describe
describe("AsyncSettings", function() {
const sinon = sinonStatic.createSandbox();
let browserApi: typeof SinonChrome;
let stubbedStorage: typeof SinonChrome.storage;
let stubbedStorageArea: SinonChrome.storage.StubbedStorageArea;
let log: Log;
let asyncSettings: AsyncSettings;
function createAsyncSettings(
defaultSettings = {},
storageReadyPromise = Promise.resolve(),
) {
const storageAvailabilityController = new Module("", log);
storageReadyPromise.then(() => storageAvailabilityController.startup());
const storageApiWrapper = new StorageApiWrapper(
null, log, stubbedStorage, storageAvailabilityController as any,
);
storageApiWrapper.startup();
return new AsyncSettings(
log,
null,
storageApiWrapper,
defaultSettings,
);
}
before(function() {
browserApi = createBrowserApi();
log = new Log();
});
beforeEach(function() {
// MUST be in beforeEach (due to browserApi.flush() in afterEach):
stubbedStorage = browserApi.storage;
stubbedStorageArea = stubbedStorage.local;
});
afterEach(function() {
browserApi.flush();
sinon.reset();
});
describe(".get()", function() {
it("should throw for a pref without a default", async function() {
// setup
stubbedStorageArea.get.resolves({});
asyncSettings = createAsyncSettings();
asyncSettings.startup();
await asyncSettings.whenReady;
// exercise + verify
assert.throws(() => asyncSettings.get("foo"));
});
it("should return the default if no value is set", async function() {
// setup
stubbedStorageArea.get.resolves({
foo: "bar",
});
asyncSettings = createAsyncSettings({
foo: "bar",
});
asyncSettings.startup();
await asyncSettings.whenReady;
// exercise
const result = await asyncSettings.get("foo");
// verify
sinon.assert.callCount(stubbedStorageArea.get, 1);
sinon.assert.calledWithMatch(stubbedStorageArea.get, {foo: "bar"});
assert.deepEqual(result, {foo: "bar"});
});
it("should return the stored value for a pref with both a default and a value", async function() {
// setup
stubbedStorageArea.get.resolves({
foo: "BAZ",
});
asyncSettings = createAsyncSettings({
foo: "baz",
});
asyncSettings.startup();
await asyncSettings.whenReady;
// exercise
const result = await asyncSettings.get("foo");
// verify
sinon.assert.callCount(stubbedStorageArea.get, 1);
sinon.assert.calledWithMatch(stubbedStorageArea.get, {foo: "baz"});
assert.deepEqual(result, {foo: "BAZ"});
});
});
describe(".onChanged", function() {
it("should ignore prefs without a default value", async function() {
// setup
asyncSettings = createAsyncSettings();
//.........这里部分代码省略.........
开发者ID:RequestPolicyContinued,项目名称:requestpolicy,代码行数:101,代码来源:test-async-settings.ts
示例3:
assert.throws(() => asyncSettings.get("foo"));
开发者ID:RequestPolicyContinued,项目名称:requestpolicy,代码行数:1,代码来源:test-async-settings.ts
注:本文中的app/storage/async-settings.AsyncSettings类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论