From 4e9fa5b7e9ca6030a5fe2e9b0520bf8fa18e5877 Mon Sep 17 00:00:00 2001 From: Nassim Bounouas Date: Fri, 21 Jun 2019 08:49:35 +0200 Subject: Feature/subject in contact form (#1926) * #1915 Add a subject to contact form and add it to email sent * #1915 Add subject to contact form tests * #1915 Contact form test corrected && tslint correction --- server/controllers/api/server/contact.ts | 2 +- server/lib/emailer.ts | 4 ++-- server/tests/api/check-params/contact-form.ts | 1 + server/tests/api/server/contact-form.ts | 10 +++++++--- 4 files changed, 11 insertions(+), 6 deletions(-) (limited to 'server') diff --git a/server/controllers/api/server/contact.ts b/server/controllers/api/server/contact.ts index b1144c94e..de02ffc0b 100644 --- a/server/controllers/api/server/contact.ts +++ b/server/controllers/api/server/contact.ts @@ -14,7 +14,7 @@ contactRouter.post('/contact', async function contactAdministrator (req: express.Request, res: express.Response) { const data = req.body as ContactForm - await Emailer.Instance.addContactFormJob(data.fromEmail, data.fromName, data.body) + await Emailer.Instance.addContactFormJob(data.fromEmail, data.fromName, data.subject, data.body) await Redis.Instance.setContactFormIp(req.ip) diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts index c4a5a5853..73c2bcb1b 100644 --- a/server/lib/emailer.ts +++ b/server/lib/emailer.ts @@ -402,7 +402,7 @@ class Emailer { return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload }) } - addContactFormJob (fromEmail: string, fromName: string, body: string) { + addContactFormJob (fromEmail: string, fromName: string, subject: string, body: string) { const text = 'Hello dear admin,\n\n' + fromName + ' sent you a message' + '\n\n---------------------------------------\n\n' + @@ -415,7 +415,7 @@ class Emailer { fromDisplayName: fromEmail, replyTo: fromEmail, to: [ CONFIG.ADMIN.EMAIL ], - subject: CONFIG.EMAIL.OBJECT.PREFIX + 'Contact form submitted', + subject: CONFIG.EMAIL.OBJECT.PREFIX + subject, text } diff --git a/server/tests/api/check-params/contact-form.ts b/server/tests/api/check-params/contact-form.ts index dbdd3a8a6..b3051945e 100644 --- a/server/tests/api/check-params/contact-form.ts +++ b/server/tests/api/check-params/contact-form.ts @@ -26,6 +26,7 @@ describe('Test contact form API validators', function () { const defaultBody = { fromName: 'super name', fromEmail: 'toto@example.com', + subject: 'my subject', body: 'Hello, how are you?' } let emailPort: number diff --git a/server/tests/api/server/contact-form.ts b/server/tests/api/server/contact-form.ts index 87e55060c..e4e895acb 100644 --- a/server/tests/api/server/contact-form.ts +++ b/server/tests/api/server/contact-form.ts @@ -43,6 +43,7 @@ describe('Test contact form', function () { url: server.url, fromEmail: 'toto@example.com', body: 'my super message', + subject: 'my subject', fromName: 'Super toto' }) @@ -55,7 +56,7 @@ describe('Test contact form', function () { expect(email['from'][0]['address']).equal('test-admin@localhost') expect(email['from'][0]['name']).equal('toto@example.com') expect(email['to'][0]['address']).equal('admin' + server.internalServerNumber + '@example.com') - expect(email['subject']).contains('Contact form') + expect(email['subject']).contains('my subject') expect(email['text']).contains('my super message') }) @@ -64,6 +65,7 @@ describe('Test contact form', function () { url: server.url, fromEmail: 'toto@example.com', body: 'my super message', + subject: 'my subject', fromName: 'Super toto' }) @@ -72,6 +74,7 @@ describe('Test contact form', function () { fromEmail: 'toto@example.com', body: 'my super message', fromName: 'Super toto', + subject: 'my subject', expectedStatus: 403 }) }) @@ -82,8 +85,9 @@ describe('Test contact form', function () { await sendContactForm({ url: server.url, fromEmail: 'toto@example.com', - body: 'my super message', - fromName: 'Super toto' + fromName: 'Super toto', + subject: 'my subject', + body: 'my super message' }) }) -- cgit v1.2.3