should = require('chai').should()
SandboxedModule = require('sandboxed-module')
assert = require('assert')
path = require('path')
sinon = require('sinon')
modulePath = path.join __dirname, "../../../../app/js/Features/Email/EmailBuilder"
expect = require("chai").expect
_ = require('underscore')
_.templateSettings =
  interpolate: /\{\{(.+?)\}\}/g

describe "Email Templator ", ->

	beforeEach ->

		@settings = {}
		@EmailBuilder = SandboxedModule.require modulePath, requires:
			"settings-sharelatex":@settings
			"logger-sharelatex": log:->

	describe "welcomeEmail", ->

		beforeEach ->
			@opts =
				to:"bob@bob.com"
				first_name:"bob"
			@email = @EmailBuilder.buildEmail("welcome", @opts)

		it "should insert the first_name into the template", ->
			@email.html.indexOf(@opts.first_name).should.not.equal -1

		it "should not have undefined in it", ->
			@email.html.indexOf("undefined").should.equal -1

	describe "projectSharedWithYou", ->
		beforeEach ->
			@opts =
				to:"bob@bob.com"
				first_name:"bob"
				owner:
					email:"sally@hally.com"
				project:
					url:"http://www.project.com"
					name:"standard project"
			@email = @EmailBuilder.buildEmail("projectSharedWithYou", @opts)

		it "should insert the owner email into the template", ->
			@email.html.indexOf(@opts.owner.email).should.not.equal -1
			@email.subject.indexOf(@opts.owner.email).should.not.equal -1

		it "should not have undefined in it", ->
			@email.html.indexOf("undefined").should.equal -1
			@email.subject.indexOf("undefined").should.equal -1
