tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

asyncHelpers-asyncTest-then-resolves.js (1471B)


      1 // |reftest| async
      2 // Copyright (C) 2022 Igalia, S.L. All rights reserved.
      3 // This code is governed by the BSD license found in the LICENSE file.
      4 /*---
      5 description: |
      6    The 'asyncTest' helper calls $DONE with undefined, regardless of what value the promise resolves with
      7 flags: [async]
      8 includes: [asyncHelpers.js]
      9 ---*/
     10 var doneCalls = 0;
     11 var realDone = $DONE;
     12 globalThis.$DONE = function (noError) {
     13  doneCalls++;
     14  assert.sameValue(
     15    noError,
     16    undefined,
     17    "asyncTest should discard promise's resolved value"
     18  );
     19 };
     20 
     21 (async function () {
     22  asyncTest(function () {
     23    return Promise.resolve(null);
     24  });
     25 })()
     26  .then(() => {
     27    assert.sameValue(doneCalls, 1, "asyncTest called $DONE with undefined");
     28    asyncTest(function () {
     29      return Promise.resolve({});
     30    });
     31  })
     32  .then(() => {
     33    assert.sameValue(doneCalls, 2, "asyncTest called $DONE with undefined");
     34    asyncTest(function () {
     35      return Promise.resolve("hi");
     36    });
     37  })
     38  .then(() => {
     39    assert.sameValue(doneCalls, 3, "asyncTest called $DONE with undefined");
     40    asyncTest(function () {
     41      return Promise.resolve(10);
     42    });
     43  })
     44  .then(() => {
     45    assert.sameValue(doneCalls, 4, "asyncTest called $DONE with undefined");
     46    asyncTest(function () {
     47      return {
     48        then(res, rej) {
     49          res(true);
     50        },
     51      };
     52    });
     53  })
     54  .then(() => {
     55    assert.sameValue(doneCalls, 5, "asyncTest called $DONE with undefined");
     56  })
     57  .then(realDone, realDone);