From de141d4eac2926b97cd63ee140cc67c7cb548d63 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Thu, 19 Nov 2020 23:02:42 -0500 Subject: [PATCH] Test get_upload_urls --- packages/skin-database/__mocks__/s3.js | 5 ++++ .../api/__tests__/router.test.ts | 26 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 packages/skin-database/__mocks__/s3.js diff --git a/packages/skin-database/__mocks__/s3.js b/packages/skin-database/__mocks__/s3.js new file mode 100644 index 00000000..82a4901e --- /dev/null +++ b/packages/skin-database/__mocks__/s3.js @@ -0,0 +1,5 @@ +function getSkinUploadUrl(md5, id) { + return ""; +} + +module.exports = { getSkinUploadUrl: jest.fn(getSkinUploadUrl) }; diff --git a/packages/skin-database/api/__tests__/router.test.ts b/packages/skin-database/api/__tests__/router.test.ts index 4fb8643c..c85e5c14 100644 --- a/packages/skin-database/api/__tests__/router.test.ts +++ b/packages/skin-database/api/__tests__/router.test.ts @@ -2,6 +2,8 @@ import { Application } from "express"; import { knex } from "../../db"; import request from "supertest"; // supertest is a framework that allows to easily test web apis import { createApp } from "../app"; +import * as S3 from "../../s3"; +jest.mock("../../s3"); let app: Application; const handler = jest.fn(); @@ -107,6 +109,30 @@ test("/skins/a_fake_md5", async () => { await request(app).get("/skins/does_not_exist_md5").expect(404); }); +test("/skins/get_upload_urls", async () => { + const { body } = await request(app) + .post("/skins/get_upload_urls") + .send({ + skins: { + "3b73bcd43c30b85d4cad3083e8ac9695": "a_fake_new_file.wsz", + "48bbdbbeb03d347e59b1eebda4d352d0": + "a_new_name_for_a_file_that_exists.wsz", + }, + }); + + expect(S3.getSkinUploadUrl).toHaveBeenCalledWith( + "3b73bcd43c30b85d4cad3083e8ac9695", + expect.any(Number) + ); + + expect(body).toEqual({ + "3b73bcd43c30b85d4cad3083e8ac9695": { + id: expect.any(Number), + url: "", + }, + }); +}); + test("/stylegan.json", async () => { let response = await request(app).get("/stylegan.json"); expect(response.body).toMatchInlineSnapshot(`