diff --git a/packages/api/src/resolvers/function_resolvers.ts b/packages/api/src/resolvers/function_resolvers.ts index a75385689..cdcd4a8bc 100644 --- a/packages/api/src/resolvers/function_resolvers.ts +++ b/packages/api/src/resolvers/function_resolvers.ts @@ -4,7 +4,10 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ import { createHmac } from 'crypto' -import { NewsletterEmail } from '../entity/newsletter_email' +import { + EXISTING_NEWSLETTER_FOLDER, + NewsletterEmail, +} from '../entity/newsletter_email' import { DEFAULT_SUBSCRIPTION_FOLDER, Subscription, @@ -450,6 +453,9 @@ export const functionResolvers = { subscriptionCount(newsletterEmail: NewsletterEmail) { return newsletterEmail.subscriptions?.length || 0 }, + folder(newsletterEmail: NewsletterEmail) { + return newsletterEmail.folder || EXISTING_NEWSLETTER_FOLDER + }, }, ...resultResolveTypeResolver('Login'), ...resultResolveTypeResolver('LogOut'), diff --git a/packages/api/test/resolvers/newsletters.test.ts b/packages/api/test/resolvers/newsletters.test.ts index 8e4ea893a..941a0365f 100644 --- a/packages/api/test/resolvers/newsletters.test.ts +++ b/packages/api/test/resolvers/newsletters.test.ts @@ -18,6 +18,7 @@ import { createTestUser } from '../db' import { generateFakeUuid, graphqlRequest, request } from '../util' describe('Newsletters API', () => { + const defaultFolder = 'inbox' let user: User let authToken: string @@ -47,6 +48,7 @@ describe('Newsletters API', () => { confirmationCode createdAt subscriptionCount + folder } } @@ -101,6 +103,7 @@ describe('Newsletters API', () => { createdAt: newsletterEmails[1].createdAt.toISOString().split('.')[0] + 'Z', subscriptionCount: 1, + folder: defaultFolder, }, { id: newsletterEmails[0].id, @@ -109,6 +112,7 @@ describe('Newsletters API', () => { createdAt: newsletterEmails[0].createdAt.toISOString().split('.')[0] + 'Z', subscriptionCount: 0, + folder: defaultFolder, }, ]) }) @@ -165,8 +169,8 @@ describe('Newsletters API', () => { describe('Create newsletter email', () => { const query = ` - mutation { - createNewsletterEmail { + mutation CreateNewsletterEmail($input: CreateNewsletterEmailInput!) { + createNewsletterEmail(input: $input) { ... on CreateNewsletterEmailSuccess { newsletterEmail { id @@ -181,11 +185,17 @@ describe('Newsletters API', () => { ` it('responds with status code 200', async () => { - const response = await graphqlRequest(query, authToken).expect(200) + const folder = 'following' + const response = await graphqlRequest(query, authToken, { + input: { + folder, + } + }).expect(200) const newsletterEmail = await findNewsletterEmailById( - response.body.data.createNewsletterEmail.id + response.body.data.createNewsletterEmail.newsletterEmail.id ) expect(newsletterEmail).not.to.be.undefined + expect(newsletterEmail?.folder).to.eql(folder) }) it('responds status code 400 when invalid query', async () => {