summaryrefslogtreecommitdiff
path: root/cli/tests/unit/streams_internal_test.ts
blob: f324da194500e0e7835ac444e4ede91ab2a7ebaf (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
import { unitTest, assertThrows } from "./test_util.ts";

unitTest(function streamReadableHwmError() {
  const invalidHwm = [NaN, Number("NaN"), {}, -1, "two"];
  for (const highWaterMark of invalidHwm) {
    assertThrows(
      () => {
        new ReadableStream<number>(
          undefined,
          // @ts-ignore
          { highWaterMark }
        );
      },
      RangeError,
      "highWaterMark must be a positive number or Infinity.  Received:"
    );
  }

  assertThrows(() => {
    new ReadableStream<number>(
      undefined,
      // @ts-ignore
      { highWaterMark: Symbol("hwk") }
    );
  }, TypeError);
});

unitTest(function streamWriteableHwmError() {
  const invalidHwm = [NaN, Number("NaN"), {}, -1, "two"];
  for (const highWaterMark of invalidHwm) {
    assertThrows(
      () => {
        new WritableStream(
          undefined,
          // @ts-ignore
          new CountQueuingStrategy({ highWaterMark })
        );
      },
      RangeError,
      "highWaterMark must be a positive number or Infinity.  Received:"
    );
  }

  assertThrows(() => {
    new WritableStream(
      undefined,
      // @ts-ignore
      new CountQueuingStrategy({ highWaterMark: Symbol("hwmk") })
    );
  }, TypeError);
});

unitTest(function streamTransformHwmError() {
  const invalidHwm = [NaN, Number("NaN"), {}, -1, "two"];
  for (const highWaterMark of invalidHwm) {
    assertThrows(
      () => {
        new TransformStream(
          undefined,
          undefined,
          // @ts-ignore
          { highWaterMark }
        );
      },
      RangeError,
      "highWaterMark must be a positive number or Infinity.  Received:"
    );
  }

  assertThrows(() => {
    new TransformStream(
      undefined,
      undefined,
      // @ts-ignore
      { highWaterMark: Symbol("hwmk") }
    );
  }, TypeError);
});