Skip to content

Commit

Permalink
Code and test cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
aydrian committed Aug 28, 2015
1 parent ea41569 commit 60e1b0f
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 24 deletions.
12 changes: 5 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,10 @@ npm install nodemailer-sparkpost-transport
'use strict';

var nodemailer = require('nodemailer');
var sparkPostTransport = require('nodemailer-sparkpost-transport');

var sparkpostTransport = require('nodemailer-sparkpost-transport');

var nodemailer = require('nodemailer');
var sparkpostTransport = require('nodemailer-sparkpost-transport');
// Will use dotenv to load .env variables, passing in options to send with SparkPost
var transporter = nodemailer.createTransport(sparkpostTransport({
var transporter = nodemailer.createTransport(sparkPostTransport({
"options": {
"open_tracking": true,
"click_tracking": true,
Expand Down Expand Up @@ -66,14 +63,15 @@ transport.sendMail({

## Documentation

### `sparkpostTransport`
### `sparkPostTransport`

```javascript
sparkpostTransport(options);
sparkPostTransport(options);
```

#### Available options

+ `sparkPostApiKey`
+ `tags`
+ `metadata`
+ `campaign_id`
Expand Down
1 change: 0 additions & 1 deletion index.js

This file was deleted.

16 changes: 8 additions & 8 deletions lib/sparkpostTransport.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@ require('dotenv').load();

// Dependencies
var pkg = require('../package');
var sparkpost = require('sparkpost');
var SparkPost = require('sparkpost');

// Constructor
var SparkpostTransport = function SparkpostTransport(options) {
var SparkPostTransport = function SparkPostTransport(options) {
// Set required properties
this.name = 'Sparkpost';
this.name = 'SparkPost';
this.version = pkg.version;
options = options || {};

// Set the SparkPost API Key (must have appropriate Transmission resource permissions)
this.sparpostApiKey = process.env.SPARKPOST_API_KEY || options.sparkpostApiKey;
this.sparkpostEmailClient = new sparkpost( this.sparkpostApiKey );
this.sparkPostApiKey = process.env.SPARKPOST_API_KEY || options.sparkPostApiKey;
this.sparkPostEmailClient = new SparkPost( this.sparkPostApiKey );

// Set any options which are valid
for( var opt in options ) {
Expand All @@ -26,7 +26,7 @@ var SparkpostTransport = function SparkpostTransport(options) {
return this;
};

SparkpostTransport.prototype.send = function send(payload, callback) {
SparkPostTransport.prototype.send = function send(payload, callback) {
var email = {
transmissionBody: {}
};
Expand All @@ -41,7 +41,7 @@ SparkpostTransport.prototype.send = function send(payload, callback) {
email.transmissionBody.recipients = (payload.data.recipients) ? payload.data.recipients : this.recipients;

// Send the transmission using Sparkpost
this.sparkpostEmailClient.transmissions.send(email, function( err, res ) {
this.sparkPostEmailClient.transmissions.send(email, function( err, res ) {
if( err ) {
return callback( err );
} else {
Expand All @@ -57,5 +57,5 @@ SparkpostTransport.prototype.send = function send(payload, callback) {
};

module.exports = function(options) {
return new SparkpostTransport(options);
return new SparkPostTransport(options);
};
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "nodemailer-sparkpost-transport",
"version": "0.1.0",
"description": "SparkPost transport for Nodemailer",
"main": "index.js",
"main": "lib/sparkPostTransport.js",
"scripts": {
"test": "mocha"
},
Expand Down
16 changes: 9 additions & 7 deletions test/sparkpostTransport.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
var sinon = require("sinon");
var expect = require("chai").expect;

var sparkpostTransport = require("../");
var sparkPostTransport = require("../lib/sparkPostTransport.js");

var pkg = require("../package.json");

describe("SparkPost Transport Tests", function() {
var transport = sparkpostTransport();
describe("SparkPost Transport", function() {
var transport = sparkPostTransport({sparkPostApiKey: "12345678901234567890"});

it("should have a name and version property", function(done) {
expect(transport).to.have.property("name", "Sparkpost");
expect(transport).to.have.property("name", "SparkPost");
expect(transport).to.have.property("version", pkg.version);
done();
});
Expand All @@ -23,7 +23,8 @@ describe("SparkPost Transport Tests", function() {
});

it("should be able to set options", function(done) {
var transport = sparkpostTransport({
var transport = sparkPostTransport({
sparkPostApiKey: "12345678901234567890",
campaign_id: "sample_campaign",
tags: ["new-account-notification"],
metadata: {"source": "event"},
Expand All @@ -50,7 +51,8 @@ describe("Send Method", function() {

it("should be able to overload options at the transmission", function(done) {
// Create the default transport
var transport = sparkpostTransport({
var transport = sparkPostTransport({
sparkPostApiKey: "12345678901234567890",
campaign_id: "sample_campaign",
tags: ["new-account-notification"],
metadata: {"source": "event"},
Expand All @@ -61,7 +63,7 @@ describe("Send Method", function() {
});

// Stub the send method of the SDK out
var stub = sinon.stub(transport, "send", function(data, resolve) {
sinon.stub(transport, "send", function(data, resolve) {
// Grab the transmissionBody from the send() payload for assertions
expect(data.campaign_id).to.equal("another_sample_campaign");
expect(data.tags).to.deep.equal(["alternative-tag"]);
Expand Down

0 comments on commit 60e1b0f

Please sign in to comment.