Path: blob/master/src/packages/next/pages/api/v2/guesslang.test.ts
5956 views
/** @jest-environment node */12import { createMocks } from "lib/api/test-framework";3import handler from "./guesslang";45describe("/api/v2/guesslang", () => {6test("guess language of some code", async () => {7const { req, res } = createMocks({8method: "POST",9url: "/api/v2/guesslang",10body: {11code: "for i in range(10):\n print(i**2)",12cutoff: 3,13},14});1516await handler(req, res);17expect(res.statusCode).toBe(200);18const data = res._getJSONData();19expect(data.result.length).toBe(3);20expect(data.result[0]).toEqual("py");21});2223test("default number of responses is 5", async () => {24const { req, res } = createMocks({25method: "POST",26url: "/api/v2/guesslang",27body: { code: "for i in range(10):\n print(i**2)" },28});2930await handler(req, res);3132expect(res.statusCode).toBe(200);33const data = res._getJSONData();34expect(data.result.length).toBe(5);35});3637test("error if code not given", async () => {38const { req, res } = createMocks({39method: "POST",40url: "/api/v2/guesslang",41body: {},42});4344await handler(req, res);45expect(res.statusCode).toBe(400);46});4748test("error if code is not a string", async () => {49const { req, res } = createMocks({50method: "POST",51url: "/api/v2/guesslang",52body: { code: 10 },53});5455await handler(req, res);56expect(res.statusCode).toBe(400);57});5859test("no error if extra param", async () => {60const cutoff = 7;61const { req, res } = createMocks({62method: "POST",63url: "/api/v2/guesslang",64body: {65code: "for i in range(10):\n print(i**2)",66foo: "bar",67cutoff,68},69});7071await handler(req, res);72expect(res.statusCode).toBe(200);73const data = res._getJSONData();74expect(data.result.length).toBe(cutoff);75});76});777879