Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump apollo-server-lambda from 2.21.0 to 3.1.2 in /services/app-api #310

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
14 changes: 7 additions & 7 deletions services/app-api/handlers/apollo_gql.ts
Expand Up @@ -84,9 +84,6 @@ const context = async ({
const server = new ApolloServer({
typeDefs,
resolvers,
playground: {
endpoint: '/local/graphql',
},
context,
})

Expand All @@ -101,7 +98,8 @@ function localAuthMiddleware(
console.log('NO_USER info set, returning 403')
return Promise.resolve({
statusCode: 403,
body: '{ "error": "No User Sent in cognitoAuthenticationProvider header"}\n',
body:
'{ "error": "No User Sent in cognitoAuthenticationProvider header"}\n',
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials': true,
Expand All @@ -114,9 +112,11 @@ function localAuthMiddleware(
}

const gqlHandler = server.createHandler({
cors: {
origin: true,
credentials: true,
expressGetMiddlewareOptions: {
cors: {
origin: true,
credentials: true,
},
},
})

Expand Down
3 changes: 1 addition & 2 deletions services/app-api/package.json
Expand Up @@ -14,8 +14,7 @@
"@types/aws-lambda": "^8.10.71",
"@types/request": "^2.48.7",
"@types/uuid": "^8.3.1",
"apollo-server-lambda": "^2.21.0",
"apollo-server-testing": "^2.25.2",
"apollo-server-lambda": "^3.1.2",
"aws-sdk": "^2.966.0",
"eslint-config-prettier": "^7.2.0",
"eslint-plugin-jest": "^24.4.0",
Expand Down
15 changes: 5 additions & 10 deletions services/app-api/resolvers/createDraftSubmission.test.ts
@@ -1,5 +1,3 @@
import { createTestClient } from 'apollo-server-testing'

import { CreateDraftSubmissionInput } from '../gen/gqlServer'
import CREATE_DRAFT_SUBMISSION from '../../app-graphql/src/mutations/createDraftSubmission.graphql'
import { constructTestServer } from '../testHelpers/gqlHelpers'
Expand All @@ -8,21 +6,19 @@ describe('createDraftSubmission', () => {
it('returns draft submission payload with a draft submission', async () => {
const server = constructTestServer()

const { mutate } = createTestClient(server)

const input: CreateDraftSubmissionInput = {
programID: 'managed-medical-assistance',
submissionType: 'CONTRACT_ONLY',
submissionDescription: 'A real submission',
}
const res = await mutate({
mutation: CREATE_DRAFT_SUBMISSION,
const res = await server.executeOperation({
query: CREATE_DRAFT_SUBMISSION,
variables: { input },
})

expect(res.errors).toBeUndefined()

const draft = res.data.createDraftSubmission.draftSubmission
const draft = res.data?.createDraftSubmission.draftSubmission

expect(draft.submissionDescription).toBe('A real submission')
expect(draft.submissionType).toBe('CONTRACT_ONLY')
Expand All @@ -38,14 +34,13 @@ describe('createDraftSubmission', () => {

it('returns an error if the program id is not in valid', async () => {
const server = constructTestServer()
const { mutate } = createTestClient(server)
const input: CreateDraftSubmissionInput = {
programID: 'xyz123',
submissionType: 'CONTRACT_ONLY',
submissionDescription: 'A real submission',
}
const res = await mutate({
mutation: CREATE_DRAFT_SUBMISSION,
const res = await server.executeOperation({
query: CREATE_DRAFT_SUBMISSION,
variables: { input },
})

Expand Down
19 changes: 8 additions & 11 deletions services/app-api/resolvers/fetchCurrentUser.test.ts
@@ -1,4 +1,3 @@
import { createTestClient } from 'apollo-server-testing'
import { Context } from '../handlers/apollo_gql'

import { constructTestServer } from '../testHelpers/gqlHelpers'
Expand All @@ -7,17 +6,16 @@ import FETCH_CURRENT_USER from '../../app-graphql/src/queries/fetchCurrentUser.g
describe('currentUser', () => {
it('returns the currentUser', async () => {
const server = constructTestServer()
const { query } = createTestClient(server)

// make a mock request
const res = await query({ query: FETCH_CURRENT_USER })
const res = await server.executeOperation({ query: FETCH_CURRENT_USER })

// confirm that we get what we got
expect(res.errors).toBeUndefined()

expect(res.data.fetchCurrentUser.email).toBe('james@example.com')
expect(res.data.fetchCurrentUser.state.code).toBe('FL')
expect(res.data.fetchCurrentUser.state.programs).toHaveLength(4)
expect(res.data?.fetchCurrentUser.email).toBe('james@example.com')
expect(res.data?.fetchCurrentUser.state.code).toBe('FL')
expect(res.data?.fetchCurrentUser.state.programs).toHaveLength(4)
})

it('returns a state with no programs if the state is not in valid state list', async () => {
Expand All @@ -31,17 +29,16 @@ describe('currentUser', () => {
}

const server = constructTestServer({ context: customContext })
const { query } = createTestClient(server)

// make a mock request
const res = await query({ query: FETCH_CURRENT_USER })
const res = await server.executeOperation({ query: FETCH_CURRENT_USER })

// confirm that we get what we got
expect(res.errors).toBeUndefined()

expect(res.data.fetchCurrentUser.email).toBe('james@example.com')
expect(res.data.fetchCurrentUser.state.code).toBe('MI')
expect(res.data.fetchCurrentUser.state.name).toBe(
expect(res.data?.fetchCurrentUser.email).toBe('james@example.com')
expect(res.data?.fetchCurrentUser.state.code).toBe('MI')
expect(res.data?.fetchCurrentUser.state.name).toBe(
'This state is not part of the pilot'
)
})
Expand Down
44 changes: 15 additions & 29 deletions services/app-api/resolvers/fetchDraftSubmission.test.ts
@@ -1,5 +1,3 @@
import { createTestClient } from 'apollo-server-testing'

import { CreateDraftSubmissionInput } from '../gen/gqlServer'
import CREATE_DRAFT_SUBMISSION from '../../app-graphql/src/mutations/createDraftSubmission.graphql'
import FETCH_DRAFT_SUBMISSION from '../../app-graphql/src/queries/fetchDraftSubmission.graphql'
Expand All @@ -9,35 +7,33 @@ describe('fetchDraftSubmission', () => {
it('returns draft submission payload with a draft submission', async () => {
const server = constructTestServer()

const { query, mutate } = createTestClient(server)

// First, create a new submission
const createInput: CreateDraftSubmissionInput = {
programID: 'managed-medical-assistance',
submissionType: 'CONTRACT_ONLY',
submissionDescription: 'A real submission',
}
const createResult = await mutate({
mutation: CREATE_DRAFT_SUBMISSION,
const createResult = await server.executeOperation({
query: CREATE_DRAFT_SUBMISSION,
variables: { input: createInput },
})

const createdID =
createResult.data.createDraftSubmission.draftSubmission.id
createResult.data?.createDraftSubmission.draftSubmission.id

// then see if we can fetch that same submission
const input = {
submissionID: createdID,
}

const result = await query({
const result = await server.executeOperation({
query: FETCH_DRAFT_SUBMISSION,
variables: { input },
})

expect(result.errors).toBeUndefined()

const resultDraft = result.data.fetchDraftSubmission.draftSubmission
const resultDraft = result.data?.fetchDraftSubmission.draftSubmission
expect(resultDraft.id).toEqual(createdID)
expect(resultDraft.program.id).toEqual('managed-medical-assistance')
expect(resultDraft.program.name).toBe('Managed Medical Assistance')
Expand All @@ -49,40 +45,36 @@ describe('fetchDraftSubmission', () => {
it('returns null if the ID does not exist', async () => {
const server = constructTestServer()

const { query } = createTestClient(server)

// then see if we can fetch that same submission
const input = {
submissionID: 'deadbeef-3292323-foo-bar',
}

const result = await query({
const result = await server.executeOperation({
query: FETCH_DRAFT_SUBMISSION,
variables: { input },
})

expect(result.errors).toBeUndefined()
expect(result.data.fetchDraftSubmission.draftSubmission).toBeNull()
expect(result.data?.fetchDraftSubmission.draftSubmission).toBeNull()
})

it('a different user from the same state can fetch the draft', async () => {
const server = constructTestServer()

const { mutate } = createTestClient(server)

// First, create a new submission
const createInput: CreateDraftSubmissionInput = {
programID: 'smmc',
submissionType: 'CONTRACT_ONLY',
submissionDescription: 'A real submission',
}
const createResult = await mutate({
mutation: CREATE_DRAFT_SUBMISSION,
const createResult = await server.executeOperation({
query: CREATE_DRAFT_SUBMISSION,
variables: { input: createInput },
})

const createdID =
createResult.data.createDraftSubmission.draftSubmission.id
createResult.data?.createDraftSubmission.draftSubmission.id

// then see if we can fetch that same submission
const input = {
Expand All @@ -101,9 +93,7 @@ describe('fetchDraftSubmission', () => {
},
})

const { query } = createTestClient(otherUserServer)

const result = await query({
const result = await otherUserServer.executeOperation({
query: FETCH_DRAFT_SUBMISSION,
variables: { input },
})
Expand All @@ -116,21 +106,19 @@ describe('fetchDraftSubmission', () => {
it('returns an error if you are requesting for a different state (403)', async () => {
const server = constructTestServer()

const { mutate } = createTestClient(server)

// First, create a new submission
const createInput: CreateDraftSubmissionInput = {
programID: 'smmc',
submissionType: 'CONTRACT_ONLY',
submissionDescription: 'A real submission',
}
const createResult = await mutate({
mutation: CREATE_DRAFT_SUBMISSION,
const createResult = await server.executeOperation({
query: CREATE_DRAFT_SUBMISSION,
variables: { input: createInput },
})

const createdID =
createResult.data.createDraftSubmission.draftSubmission.id
createResult.data?.createDraftSubmission.draftSubmission.id

// then see if we can fetch that same submission
const input = {
Expand All @@ -149,9 +137,7 @@ describe('fetchDraftSubmission', () => {
},
})

const { query } = createTestClient(otherUserServer)

const result = await query({
const result = await otherUserServer.executeOperation({
query: FETCH_DRAFT_SUBMISSION,
variables: { input },
})
Expand Down