Mailspring/internal_packages/composer-signature/spec/signature-composer-extension-spec.coffee
Juan Tejada 579d4ad71b fix(signature): Update signature when account is changed in composer
Summary:
- Fixes #1239
- Adds action in composer view to indicate when draft partcipants have
  changed. This seemed like the simplest way to listen for this change without
  adding another extension point
- Updates signature plugin to listen to this action and update signature
  accordingly
- Adds test

Test Plan: - Unit tests

Reviewers: evan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2614
2016-02-24 00:19:55 -08:00

54 lines
2.6 KiB
CoffeeScript

{Message} = require 'nylas-exports'
SignatureComposerExtension = require '../lib/signature-composer-extension'
describe "SignatureComposerExtension", ->
describe "prepareNewDraft", ->
describe "when a signature is defined", ->
beforeEach ->
@signature = '<div id="signature">This is my signature.</div>'
spyOn(NylasEnv.config, 'get').andCallFake =>
@signature
it "should insert the signature at the end of the message or before the first blockquote and have a newline", ->
a = new Message
draft: true
body: 'This is a test! <blockquote>Hello world</blockquote>'
b = new Message
draft: true
body: 'This is a another test.'
SignatureComposerExtension.prepareNewDraft(draft: a)
expect(a.body).toEqual('This is a test! <div class="nylas-n1-signature"><div id="signature">This is my signature.</div></div><blockquote>Hello world</blockquote>')
SignatureComposerExtension.prepareNewDraft(draft: b)
expect(b.body).toEqual('This is a another test.<br/><br/><div class="nylas-n1-signature"><div id="signature">This is my signature.</div></div>')
it "should replace the signature if a signature is already present", ->
a = new Message
draft: true
body: 'This is a test! <div class="nylas-n1-signature"><div>SIG</div></div><blockquote>Hello world</blockquote>'
b = new Message
draft: true
body: 'This is a test! <div class="nylas-n1-signature"><div>SIG</div></div>'
c = new Message
draft: true
body: 'This is a test! <div class="nylas-n1-signature"></div>'
SignatureComposerExtension.prepareNewDraft(draft: a)
expect(a.body).toEqual("This is a test! <div class=\"nylas-n1-signature\">#{@signature}</div><blockquote>Hello world</blockquote>")
SignatureComposerExtension.prepareNewDraft(draft: b)
expect(b.body).toEqual("This is a test! <div class=\"nylas-n1-signature\">#{@signature}</div>")
SignatureComposerExtension.prepareNewDraft(draft: c)
expect(c.body).toEqual("This is a test! <div class=\"nylas-n1-signature\">#{@signature}</div>")
describe "when a signature is not defined", ->
beforeEach ->
spyOn(NylasEnv.config, 'get').andCallFake ->
null
it "should not do anything", ->
a = new Message
draft: true
body: 'This is a test! <blockquote>Hello world</blockquote>'
SignatureComposerExtension.prepareNewDraft(draft: a)
expect(a.body).toEqual('This is a test! <blockquote>Hello world</blockquote>')