1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- exports.beforeEach = function (fn) {
- global.beforeEach(function () {
- const result = fn();
- if (result instanceof Promise) {
- waitsForPromise(() => result);
- }
- });
- };
- exports.afterEach = function (fn) {
- global.afterEach(function () {
- const result = fn();
- if (result instanceof Promise) {
- waitsForPromise(() => result);
- }
- });
- };
- for (const name of ['it', 'fit', 'ffit', 'fffit']) {
- exports[name] = function (description, fn) {
- if (fn === undefined) {
- global[name](description);
- return;
- }
- global[name](description, function () {
- const result = fn();
- if (result instanceof Promise) {
- waitsForPromise(() => result);
- }
- });
- };
- }
- exports.conditionPromise = async function (
- condition,
- description = condition.toString()
- ) {
- const startTime = Date.now();
- while (true) {
- await exports.timeoutPromise(100);
- if (await condition()) {
- return;
- }
- if (Date.now() - startTime > 120000) {
- throw new Error('Timed out waiting on ' + description);
- }
- }
- };
- exports.timeoutPromise = function (timeout) {
- return new Promise(function (resolve) {
- global.setTimeout(resolve, timeout);
- });
- };
- exports.waitsForPromise = function (fn) {
- const promise = fn();
- global.waitsFor('spec promise to resolve', function (done) {
- promise.then(done, function (error) {
- jasmine.getEnv().currentSpec.fail(error);
- done();
- });
- });
- };
|