translations.spec.ts 1.3 KB

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