123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- describe("errors", () => {
- test("first argument must be coercible to object", () => {
- expect(() => {
- new AggregateError();
- }).toThrowWithMessage(TypeError, "ToObject on null or undefined");
- });
- test("@@iterator throws", () => {
- expect(() => {
- new AggregateError({
- [Symbol.iterator]() {
- throw Error("oops!");
- },
- });
- }).toThrowWithMessage(Error, "oops!");
- });
- });
- describe("normal behavior", () => {
- test("length is 2", () => {
- expect(AggregateError).toHaveLength(2);
- });
- test("name is AggregateError", () => {
- expect(AggregateError.name).toBe("AggregateError");
- });
- test("Prototype of the AggregateError constructor is the Error constructor", () => {
- expect(Object.getPrototypeOf(AggregateError)).toBe(Error);
- });
- test("Prototype of AggregateError.prototype is Error.prototype", () => {
- expect(Object.getPrototypeOf(AggregateError.prototype)).toBe(Error.prototype);
- });
- test("basic functionality", () => {
- expect(AggregateError([])).toBeInstanceOf(AggregateError);
- expect(new AggregateError([])).toBeInstanceOf(AggregateError);
- expect(new AggregateError([]).toString()).toBe("AggregateError");
- expect(new AggregateError([], "Foo").toString()).toBe("AggregateError: Foo");
- expect(new AggregateError([]).hasOwnProperty("errors")).toBeTrue();
- const errors = [1, 2, 3];
- expect(new AggregateError(errors).errors).toEqual(errors);
- expect(new AggregateError(errors).errors).not.toBe(errors);
- expect(
- new AggregateError({
- [Symbol.iterator]: (i = 0) => ({
- next() {
- if (i < 3) {
- i++;
- return { value: i };
- }
- return { value: null, done: true };
- },
- }),
- }).errors
- ).toEqual(errors);
- });
- test("supports options object with cause", () => {
- const cause = new Error();
- const error = new AggregateError([], "test", { cause });
- expect(error.hasOwnProperty("cause")).toBeTrue();
- expect(error.cause).toBe(cause);
- });
- });
|