blob: 3edbdab16b1f2ff67a09aca1402c0fd58b29b9da [file] [log] [blame]
/**
* @license
* Copyright 2022 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import '../../test/common-test-setup-karma.js';
import {assertFails} from '../../test/test-utils.js';
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);
});
});
});