translations.spec.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { checkTranslationProps, sendReq } from "./hooks";
  2. describe("Translation routes", () => {
  3. //#region inv /tr
  4. it("Translations path without ID yields error", async () => {
  5. const { res, status } = await sendReq("/translations");
  6. const body = await res.json();
  7. expect(status).toBe(400);
  8. expect(body?.error).toEqual(true);
  9. expect(body?.matches).toEqual(null);
  10. expect(body?.message).toBeDefined();
  11. });
  12. //#region /tr/:id
  13. it("Translation yields correct props", async () => {
  14. const { res, status } = await sendReq("/translations/7105950");
  15. const body = await res.json();
  16. expect(status).toBe(200);
  17. expect(body?.error).toEqual(false);
  18. expect(body?.matches).toBeGreaterThan(0);
  19. expect(Array.isArray(body?.translations)).toBe(true);
  20. body?.translations?.forEach((tr: unknown) => checkTranslationProps(tr));
  21. });
  22. //#region inv /tr/:id
  23. it("Invalid song ID yields no matches", async () => {
  24. const { res, status } = await sendReq("/translations/0");
  25. const body = await res.json();
  26. expect(status).toBe(200);
  27. expect(body?.error).toEqual(false);
  28. expect(body?.matches).toEqual(0);
  29. expect(body?.message).toBeUndefined();
  30. });
  31. });