Skip to content

Commit

Permalink
Extract mail-to information into environment variables
Browse files Browse the repository at this point in the history
  • Loading branch information
jbuget committed Jun 28, 2017
1 parent 228cbda commit 8788686
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 17 deletions.
5 changes: 4 additions & 1 deletion server/src/config/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ function config () {
AUTHORIZATION_PASSWORD: process.env.AUTHORIZATION_PASSWORD,
AUTHORIZATION_CODES: process.env.AUTHORIZATION_CODES,

ACCESS_TOKEN_SECRET: process.env.ACCESS_TOKEN_SECRET
ACCESS_TOKEN_SECRET: process.env.ACCESS_TOKEN_SECRET,

MAIL_TO: process.env.MAIL_TO
}

if (process.env.NODE_ENV === 'test') {
Expand All @@ -41,6 +43,7 @@ function config () {
APP_ENV.AUTHORIZATION_PASSWORD = 'authorization-password'
APP_ENV.AUTHORIZATION_CODES = 'test/test_authorization_codes'
APP_ENV.ACCESS_TOKEN_SECRET = 'access-token-password'
APP_ENV.MAIL_TO = 'jobboard+test@octo.com'
}

return APP_ENV
Expand Down
3 changes: 2 additions & 1 deletion server/src/infrastructure/mail-service.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const mailJet = require('./mailjet')
const config = require('../config')

function sendWelcomeEmail (interestedJobForm) {
const options = buildMailOptions(interestedJobForm)
Expand All @@ -19,7 +20,7 @@ function buildMailOptions (interestedJobForm) {
const options = {
from: 'jobboard@octo.com',
fromName: 'Le Job Board - Ne pas répondre',
to: 'jobboard@octo.com',
to: config.MAIL_TO,
subject: subject,
template: template
}
Expand Down
32 changes: 17 additions & 15 deletions server/test/unit/infrastructure/mail-service.spec.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
const { describe, it, beforeEach, afterEach, sinon, expect } = require('../../test-helper')
const { sinon, expect } = require('../../test-helper')

const mailJet = require('../../../src/infrastructure/mailjet')
const mailjet = require('../../../src/infrastructure/mailjet')
const mailService = require('../../../src/infrastructure/mail-service')

describe('Unit | Service | MailService', () => {
describe('#sendWelcomeEmail', () => {
let sendEmailStub, interestedJobForm
let interestedJobForm

beforeEach(() => {
sendEmailStub = sinon.stub(mailJet, 'sendEmail').resolves()
sinon.stub(mailjet, 'sendEmail').resolves()
interestedJobForm = {
interestedConsultant: {
name: 'Samurai Jack',
Expand All @@ -23,23 +23,25 @@ describe('Unit | Service | MailService', () => {
})

afterEach(() => {
sendEmailStub.restore()
mailjet.sendEmail.restore()
})

it('should send an email with correct options', () => {
// When
// given
const expectedParams = {
from: 'jobboard@octo.com',
to: 'jobboard+test@octo.com',
fromName: 'Le Job Board - Ne pas répondre',
subject: "[JobBoard] Samurai Jack intéressé·e par Oodrive - Liste d'initié - Développeur Front",
template: "\n <h3><a href=\"mailto:sjack@octo.com\">Samurai Jack</a> est intéressé·e par la mission <strong>Oodrive - Liste d'initié</strong> en tant que <strong>Développeur Front</strong>.</h3>\n <p>Voir la <a href=\"https://octopod.octo.com/projects/2146904867\">page mission</a></p>\n <p>Contacter le Contact commercial : <a href=\"https://askbob.octo.com/users/xyz\">XYZ</a></p>\n <p>Contacter le Directeur de mission : <a href=\"https://askbob.octo.com/users/zyx\">ZYX</a></p>\n "
}

// when
const promise = mailService.sendWelcomeEmail(interestedJobForm)

// Then
// then
return promise.then(() => {
sinon.assert.called(sendEmailStub)
expect(sendEmailStub.firstCall.args[ 0 ]).to.deep.equal({
from: 'jobboard@octo.com',
to: 'jobboard@octo.com',
fromName: 'Le Job Board - Ne pas répondre',
subject: "[JobBoard] Samurai Jack intéressé·e par Oodrive - Liste d'initié - Développeur Front",
template: "\n <h3><a href=\"mailto:sjack@octo.com\">Samurai Jack</a> est intéressé·e par la mission <strong>Oodrive - Liste d'initié</strong> en tant que <strong>Développeur Front</strong>.</h3>\n <p>Voir la <a href=\"https://octopod.octo.com/projects/2146904867\">page mission</a></p>\n <p>Contacter le Contact commercial : <a href=\"https://askbob.octo.com/users/xyz\">XYZ</a></p>\n <p>Contacter le Directeur de mission : <a href=\"https://askbob.octo.com/users/zyx\">ZYX</a></p>\n "
})
expect(mailjet.sendEmail).to.have.been.calledWith(expectedParams)
})
})
})
Expand Down
5 changes: 5 additions & 0 deletions tools/setup/sample.env
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,8 @@ AUTHORIZATION_PASSWORD=
AUTHORIZATION_CODES=

ACCESS_TOKEN_SECRET=

# Coveralls code coverage
COVERALLS_REPO_TOKEN=

MAIL_TO=

0 comments on commit 8788686

Please sign in to comment.