From 98bc1470b577e82daf945fec35da462203c2f826 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 9 Jun 2022 12:22:41 -0700 Subject: [PATCH] Add a test for upload file requests --- .../resolvers/upload_file_request.test.ts | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 packages/api/test/resolvers/upload_file_request.test.ts diff --git a/packages/api/test/resolvers/upload_file_request.test.ts b/packages/api/test/resolvers/upload_file_request.test.ts new file mode 100644 index 000000000..150534524 --- /dev/null +++ b/packages/api/test/resolvers/upload_file_request.test.ts @@ -0,0 +1,100 @@ +import { createTestUser, deleteTestUser } from '../db' +import { + generateFakeUuid, + graphqlRequest, + request, +} from '../util' +import * as chai from 'chai' +import { expect } from 'chai' +import 'mocha' +import { User } from '../../src/entity/user' +import chaiString from 'chai-string' +import { + PageContext, +} from '../../src/elastic/types' +import { createPubSubClient } from '../../src/datalayer/pubsub' +import { + deletePage, + getPageById, +} from '../../src/elastic/pages' + +chai.use(chaiString) + +// INPUT +// clientRequestId?: InputMaybe; +// contentType: Scalars['String']; +// createPageEntry?: InputMaybe; +// url: Scalars['String']; + +const uploadFileRequest = async ( + authToken: string, + inputUrl: string, + clientRequestId: string, + createPageEntry = true + ) => { + const query = ` + mutation { + uploadFileRequest( + input: { + contentType: "application/pdf", + clientRequestId: "${clientRequestId}", + createPageEntry: ${createPageEntry}, + url: "${inputUrl}" + } + ) { + ... on ArchiveLinkSuccess { + linkId + } + ... on ArchiveLinkError { + errorCodes + } + } + } + ` + return graphqlRequest(query, authToken).expect(200) +} + +describe('uploadFileRequest API', () => { + const username = 'fakeUser' + let authToken: string + let user: User + let ctx: PageContext + + before(async () => { + // create test user and login + user = await createTestUser(username) + const res = await request + .post('/local/debug/fake-user-login') + .send({ fakeEmail: user.email }) + + authToken = res.body.authToken + + ctx = { + pubsub: createPubSubClient(), + refresh: true, + uid: user.id, + } + }) + + after(async () => { + await deleteTestUser(username) + }) + + describe('UploadFileRequest', () => { + context('when create article is true', () => { + const clientRequestId = generateFakeUuid() + + after(async () => { + await deletePage(clientRequestId, ctx) + }) + + it('should create an article if create article is true', async () => { + const res = uploadFileRequest(authToken, 'https://www.google.com', clientRequestId, true).expect(200) + expect(res.body.data.uploadFileRequest.createdPageId).to.eql(clientRequestId) + const page = await getPageById(clientRequestId) + expect(page).to.be + }) + }) + }) +}) +