-
Notifications
You must be signed in to change notification settings - Fork 36
/
fixture_generalClientTests.js
66 lines (57 loc) · 2.26 KB
/
fixture_generalClientTests.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
var mocha = require('mocha');
var assert = require('assert');
var nconf = require('nconf');
var testingKeys = nconf.env().file({
file: __dirname + '/testing_keys.json'
});
var util = require('util');
var merge = require('merge');
var postmark = require('../lib/postmark/index.js');
describe('general client functionality', function() {
// allow some of the more intensive tests to take longer.
this.timeout(30000);
var _client = null;
beforeEach(function() {
_client = new postmark.Client(testingKeys.get('WRITE_TEST_SERVER_TOKEN'));
});
it('properly handles "legacy" options', function() {
var client = postmark(testingKeys.get('WRITE_TEST_SERVER_TOKEN'), {
testOption: 'asdf',
ssl: false
});
assert.notEqual(client, null);
assert.equal(testingKeys.get('WRITE_TEST_SERVER_TOKEN'), client.options.apiKey);
assert.equal(client.options.testOption, 'asdf');
assert.equal(client.options.ssl, false, "ssl should have been set to 'false'");
});
it('constructor assigns options.', function() {
assert.equal(_client.options.ssl, true, "ssl should default to 'true'");
assert.equal(_client.options.apiKey, testingKeys.get('WRITE_TEST_SERVER_TOKEN'));
});
});
describe('integration test assertion', function() {
it('should fail if a non-200 response comes back.', function(done) {
// (almost) all of the tests in this project
// work on the premise that if we send "good",
// data to the server, and we get back a status
// of 200, this means the API call worked.
//
// The clients should also provide a status message
// as an error in callbacks if we get anything BUT
// a status code of 200, so (almost) all of the tests
// in this project simply pass those parameters back to "done",
//
// Since "done" doesn't care about the second argument, this works
// and "done" throws on any error. But, let's go ahead
// and assert that here.
var client = postmark(testingKeys.get('WRITE_TEST_SERVER_TOKEN'))
client.getBounces({
count: "invalid count"
}, function(err, result) {
assert.equal(null, result);
assert.equal(err.status, 422);
assert.equal(err.message, 'Bad number value for parameter \'count\' - \'invalid count.');
done();
});
});
});