100% branch coverage

main
jaxoncreed 2 years ago
parent f5e1148976
commit 8c258f3ede
  1. 7
      packages/solid/src/requester/results/error/HttpErrorResult.ts
  2. 64
      packages/solid/test/ErrorResult.test.ts

@ -21,13 +21,6 @@ export abstract class HttpErrorResult extends ResourceError {
this.response = response;
}
async getBodyForDebug(): Promise<string> {
if (this.response.bodyUsed) {
return `Could not get body for ${this.uri} that yeilded status ${this.status}. The body stream has already been consumed.`;
}
return await this.response.text();
}
static isnt(response: Response) {
return (
!(response.status >= 200 && response.status < 300) &&

@ -0,0 +1,64 @@
import {
AggregateError,
ErrorResult,
ResourceError,
UnexpectedResourceError,
} from "../src/requester/results/error/ErrorResult";
import { InvalidUriError } from "../src/requester/results/error/InvalidUriError";
describe("ErrorResult", () => {
describe("fromThrown", () => {
it("returns an UnexpecteResourceError if a string is provided", () => {
expect(
UnexpectedResourceError.fromThrown("https://example.com/", "hello")
.message,
).toBe("hello");
});
it("returns an UnexpecteResourceError if an odd valud is provided", () => {
expect(
UnexpectedResourceError.fromThrown("https://example.com/", 5).message,
).toBe("Error of type number thrown: 5");
});
});
describe("AggregateError", () => {
it("flattens aggregate errors provided to the constructor", () => {
const err1 = UnexpectedResourceError.fromThrown("https://abc.com", "1");
const err2 = UnexpectedResourceError.fromThrown("https://abc.com", "2");
const err3 = UnexpectedResourceError.fromThrown("https://abc.com", "3");
const err4 = UnexpectedResourceError.fromThrown("https://abc.com", "4");
const aggErr1 = new AggregateError([err1, err2]);
const aggErr2 = new AggregateError([err3, err4]);
const finalAgg = new AggregateError([aggErr1, aggErr2]);
expect(finalAgg.errors.length).toBe(4);
});
});
describe("default messages", () => {
class ConcreteResourceError extends ResourceError {
readonly type = "concreteResourceError" as const;
}
class ConcreteErrorResult extends ErrorResult {
readonly type = "concreteErrorResult" as const;
}
it("ResourceError fallsback to a default message if none is provided", () => {
expect(new ConcreteResourceError("https://example.com/").message).toBe(
"An unkown error for https://example.com/",
);
});
it("ErrorResult fallsback to a default message if none is provided", () => {
expect(new ConcreteErrorResult().message).toBe(
"An unkown error was encountered.",
);
});
it("InvalidUriError fallsback to a default message if none is provided", () => {
expect(new InvalidUriError("https://example.com/").message).toBe(
"https://example.com/ is an invalid uri.",
);
});
});
});
Loading…
Cancel
Save