mirror of
https://github.com/186526/handlers.js
synced 2024-10-13 00:29:43 +00:00
Add CI & Deno Supported & Fix a lot of bugs & Webpack for building package
This commit is contained in:
60
test/node.test.ts
Normal file
60
test/node.test.ts
Normal file
@ -0,0 +1,60 @@
|
||||
import _ from "./test-server";
|
||||
|
||||
import Axios from "axios";
|
||||
|
||||
_.listen(3000);
|
||||
|
||||
const Instance = Axios.create({
|
||||
baseURL: "http://localhost:3000"
|
||||
})
|
||||
|
||||
const randomString = () => Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
|
||||
|
||||
describe("Test server", () => {
|
||||
test("normal 200 response", async () => {
|
||||
expect.assertions(2);
|
||||
|
||||
const { data, status } = await Instance.get("/");
|
||||
expect(status).toEqual(200);
|
||||
expect(data).toEqual("200 OK");
|
||||
})
|
||||
|
||||
test("post response", async () => {
|
||||
expect.assertions(2);
|
||||
const string = randomString();
|
||||
|
||||
const { data, status } = await Instance.post("/post", string);
|
||||
|
||||
expect(status).toEqual(200);
|
||||
expect(data).toEqual(string);
|
||||
})
|
||||
|
||||
test("change header and status code", async () => {
|
||||
expect.assertions(3);
|
||||
|
||||
const { data, status, headers } = await Instance.get("/header");
|
||||
|
||||
expect(status).toEqual(204);
|
||||
expect(headers["itis"]).toEqual("work");
|
||||
expect(data).toEqual("");
|
||||
})
|
||||
|
||||
test("get param", async () => {
|
||||
expect.assertions(2);
|
||||
|
||||
const string = randomString();
|
||||
const { data, status } = await Instance.get(`/info/${string}`);
|
||||
|
||||
expect(status).toEqual(200);
|
||||
expect(data).toEqual(string);
|
||||
})
|
||||
|
||||
test("chain interrupted", async () => {
|
||||
expect.assertions(2);
|
||||
|
||||
const { data, status } = await Instance.get(`/info/foo`);
|
||||
|
||||
expect(status).toEqual(200);
|
||||
expect(data).toEqual("hit");
|
||||
})
|
||||
})
|
25
test/test-server.ts
Normal file
25
test/test-server.ts
Normal file
@ -0,0 +1,25 @@
|
||||
import * as handlersJS from '../index';
|
||||
|
||||
const App = new handlersJS.rootRouter();
|
||||
|
||||
App.binding("/", App.create("GET", async () => "200 OK"));
|
||||
|
||||
App.binding("/post", App.create("POST", async (request: handlersJS.request<any>) => request.body));
|
||||
|
||||
App.binding("/header", App.create("GET", async () => {
|
||||
const response = new handlersJS.response<any>("");
|
||||
response.status = 204;
|
||||
response.headers.set("itis", "work");
|
||||
return response;
|
||||
}));
|
||||
|
||||
App
|
||||
.route("/info/(.*)")
|
||||
.binding("/foo", App.create("GET", (): Promise<handlersJS.response<any>> => new Promise(resolve => {
|
||||
throw new handlersJS.response("hit")
|
||||
})))
|
||||
.binding("/(.*)", App.create("GET", async (request: handlersJS.request<any>) => request.params[0] ?? "not found"));
|
||||
|
||||
App.useMappingAdapter();
|
||||
|
||||
export default App;
|
Reference in New Issue
Block a user