1
0
Fork 0
mirror of synced 2024-06-22 16:10:40 +12:00
budibase/packages/worker/src/api/routes/tests/email.spec.js

44 lines
1.3 KiB
JavaScript
Raw Normal View History

2021-04-24 01:58:06 +12:00
const setup = require("./utilities")
const { EmailTemplatePurpose } = require("../../../constants")
const { TENANT_ID } = require("./utilities/structures")
2021-04-24 01:58:06 +12:00
// mock the email system
2021-05-12 01:44:43 +12:00
const sendMailMock = jest.fn()
2021-04-24 01:58:06 +12:00
jest.mock("nodemailer")
2021-05-12 01:44:43 +12:00
const nodemailer = require("nodemailer")
nodemailer.createTransport.mockReturnValue({
sendMail: sendMailMock,
verify: jest.fn()
})
2021-04-24 01:58:06 +12:00
describe("/api/global/email", () => {
2021-04-24 01:58:06 +12:00
let request = setup.getRequest()
let config = setup.getConfig()
2021-04-24 05:54:12 +12:00
beforeAll(async () => {
await config.init()
})
2021-04-24 01:58:06 +12:00
afterAll(setup.afterAll)
it("should be able to send an email (with mocking)", async () => {
// initially configure settings
await config.saveSmtpConfig()
await config.saveSettingsConfig()
const res = await request
.post(`/api/global/email/send`)
2021-04-24 01:58:06 +12:00
.send({
email: "test@test.com",
purpose: EmailTemplatePurpose.INVITATION,
tenantId: TENANT_ID,
2021-04-24 01:58:06 +12:00
})
.set(config.defaultHeaders())
.expect("Content-Type", /json/)
.expect(200)
2021-04-24 05:54:12 +12:00
expect(res.body.message).toBeDefined()
expect(sendMailMock).toHaveBeenCalled()
const emailCall = sendMailMock.mock.calls[0][0]
expect(emailCall.subject).toBe("Hello!")
expect(emailCall.html).not.toContain("Invalid Binding")
2021-04-24 01:58:06 +12:00
})
})