summaryrefslogtreecommitdiffstats
path: root/devtools/shared/tests/xpcshell/test_assert.js
blob: 45ae9eb1a2509ff525235abcb80788b018289b53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

// Test DevToolsUtils.assert

ALLOW_CONSOLE_ERRORS = true;

function run_test() {
  const { assert } = DevToolsUtils;
  equal(typeof assert, "function");

  try {
    assert(true, "this assertion should not fail");
  } catch (e) {
    // If you catch assertion failures in practice, I will hunt you down. I get
    // email notifications every time it happens.
    ok(
      false,
      "Should not get an error for an assertion that should not fail. Got " +
        DevToolsUtils.safeErrorString(e)
    );
  }

  let assertionFailed = false;
  try {
    assert(false, "this assertion should fail");
  } catch (e) {
    ok(
      e.message.startsWith("Assertion failure:"),
      "Should be an assertion failure error"
    );
    assertionFailed = true;
  }

  ok(
    assertionFailed,
    "The assertion should have failed, which should throw an error when assertions " +
      "are enabled."
  );
}