blob: a59b30f3ccbd06636a6aafca3c4eea35b8bcaaab [file] [log] [blame]
/**
* @license
* Copyright 2022 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import {assert} from '@open-wc/testing';
import '../../test/common-test-setup';
import {assertFails} from '../../test/test-utils';
import {BaseScheduler} from './scheduler';
suite('naive scheduler', () => {
let scheduler: BaseScheduler<number>;
setup(() => {
scheduler = new BaseScheduler<number>();
});
test('executes tasks', async () => {
const promise = scheduler.schedule(async () => 1);
const val = await promise;
assert.equal(val, 1);
});
test('propagates errors', async () => {
const error = new Error('This is an error');
const promise = scheduler.schedule(async () => {
throw error;
});
assertFails(promise, error);
await promise.catch((reason: Error) => {
assert.equal(reason, error);
});
});
});