diff options
| author | Jesse Morgan <jesse@jesterpm.net> | 2015-07-31 08:18:10 -0700 | 
|---|---|---|
| committer | Jesse Morgan <jesse@jesterpm.net> | 2015-07-31 08:18:10 -0700 | 
| commit | 3c453d2056a067aebb60d13987b4a3a2ea4a9f86 (patch) | |
| tree | ab008c06a40e837d8866cea117fe1f866bb6235b /test/PodcastView.js | |
| parent | b39efb7fe06593c3d125b5a35f114082f70b69ce (diff) | |
Added first test.
Diffstat (limited to 'test/PodcastView.js')
| -rw-r--r-- | test/PodcastView.js | 63 | 
1 files changed, 63 insertions, 0 deletions
diff --git a/test/PodcastView.js b/test/PodcastView.js new file mode 100644 index 0000000..b1ef22a --- /dev/null +++ b/test/PodcastView.js @@ -0,0 +1,63 @@ +var assert = require('assert'); +var mockery = require('mockery'); +var sinon = require('sinon'); + +var PodcastView; // Subject of the test + +var dynamoStub = { +  getItem: sinon.stub() +}; + +describe('PodcastView', function() { +  before(function() { +    mockery.enable(); +  }); + +  beforeEach(function() { +    mockery.registerAllowable('underscore'); +    mockery.registerMock('dynamodb-doc', { DynamoDB: function() { return dynamoStub } }); +    mockery.registerAllowable('../lib/PodcastView', true); + +    PodcastView = require('../lib/PodcastView'); + +  }); + +  it('calls the callback with a view when findById is called with a valid viewId', function() { +    // Setup stubs +    dynamoStub +      .getItem +      .withArgs({ +        TableName: 'podcast-views', +        Key: { feedId: '123', viewId: '456' } +      }) +      .callsArgWith(1, null, { +        Item: { +          feedId: '123', +          viewId: '456', +          name: 'Test View', +          template: 'Hello World' +        } +      }); + +    var callback = sinon.spy(); + +    // Call findById +    PodcastView.findById({ feedId: '123', viewId: '456' }, callback); + +    // Assertions +    assert(callback.calledOnce); + +    var error = callback.getCall(0).args[0]; +    var view = callback.getCall(0).args[1]; +    assert.equal(error, null); +    assert.equal(view.feedId, '123'); +    assert.equal(view.viewId, '456'); +    assert.equal(view.name, 'Test View'); +    assert.equal(view.template, 'Hello World'); +  }); + +  after(function() { +    mockery.deregisterAll(); +    mockery.disable(); +  }); +});  | 
