Add test case

This commit is contained in:
Hongbo Wu
2023-04-12 10:46:45 +08:00
parent f28912728a
commit f740d70608

View File

@ -1,18 +1,18 @@
import 'mocha'
import { expect } from 'chai'
import 'chai/register-should'
import { createTestUser, deleteTestUser } from '../db'
import { createNewsletterEmail } from '../../src/services/newsletters'
import { saveNewsletterEmail } from '../../src/services/save_newsletter_email'
import { User } from '../../src/entity/user'
import { NewsletterEmail } from '../../src/entity/newsletter_email'
import { SaveContext } from '../../src/services/save_email'
import 'mocha'
import nock from 'nock'
import { createPubSubClient } from '../../src/datalayer/pubsub'
import { getPageByParam } from '../../src/elastic/pages'
import nock from 'nock'
import { getRepository } from '../../src/entity/utils'
import { Subscription } from '../../src/entity/subscription'
import { NewsletterEmail } from '../../src/entity/newsletter_email'
import { ReceivedEmail } from '../../src/entity/received_email'
import { Subscription } from '../../src/entity/subscription'
import { User } from '../../src/entity/user'
import { getRepository } from '../../src/entity/utils'
import { createNewsletterEmail } from '../../src/services/newsletters'
import { SaveContext } from '../../src/services/save_email'
import { saveNewsletterEmail } from '../../src/services/save_newsletter_email'
import { createTestUser, deleteTestUser } from '../db'
describe('saveNewsletterEmail', () => {
const fakeContent = 'fake content'
@ -62,6 +62,7 @@ describe('saveNewsletterEmail', () => {
title,
author,
receivedEmailId: receivedEmail.id,
unsubHttpUrl: 'https://blog.omnivore.app/unsubscribe',
},
newsletterEmail,
ctx
@ -86,7 +87,7 @@ describe('saveNewsletterEmail', () => {
expect(updatedReceivedEmail?.type).to.equal('article')
})
it('should adds a Newsletter label to that page', async () => {
it('adds a Newsletter label to that page', async () => {
const url = 'https://blog.omnivore.app/new-fake-url'
const newLabel = {
name: 'Newsletter',
@ -110,4 +111,29 @@ describe('saveNewsletterEmail', () => {
const page = await getPageByParam({ userId: user.id, url })
expect(page?.labels?.[0]).to.deep.include(newLabel)
})
it('does not create a subscription if no unsubscribe header', async () => {
const url = 'https://blog.omnivore.app/no-unsubscribe'
nock('https://blog.omnivore.app').get('/no-unsubscribe').reply(404)
await saveNewsletterEmail(
{
email: newsletterEmail.address,
content: `<html><body>fake content 2</body></html>`,
url,
title,
author,
from,
receivedEmailId: receivedEmail.id,
},
newsletterEmail,
ctx
)
const subscriptions = await getRepository(Subscription).findBy({
newsletterEmail: { id: newsletterEmail.id },
name: from,
})
expect(subscriptions).to.be.empty
})
})