UNPKG

3.5 kBJavaScriptView Raw
1var mocha = require('mocha');
2var assert = require('assert');
3var nconf = require('nconf');
4var testingKeys = nconf.env().file({
5 file: __dirname + '/testing_keys.json'
6});
7var util = require('util');
8var merge = require('merge');
9
10var postmark = require('../lib/postmark/index.js');
11
12describe('client tag handling', function() {
13 this.timeout(5000);
14 var prefix = "node-js-tests";
15
16 var _client = null;
17
18 beforeEach(function() {
19 _client = new postmark.Client(testingKeys.get('WRITE_TEST_SERVER_TOKEN'));
20 });
21
22 after(function() {
23 var rulePrefixTester = new RegExp(prefix);
24 var c = new postmark.Client(testingKeys.get('WRITE_TEST_SERVER_TOKEN'));
25 c.getInboundRuleTriggers(function(err, trigs) {
26 if (!err) {
27 for (var i = 0; i < trigs.InboundRules.length; i++) {
28 var trigger = trigs.InboundRules[i];
29 if (rulePrefixTester.test(trigger.Rule)) {
30 c.deleteInboundRuleTrigger(trigger.ID);
31 }
32 }
33 }
34 });
35
36 c.getTagTriggers(function(err, trigs) {
37 if (!err) {
38 for (var i = 0; i < trigs.Tags.length; i++) {
39 var trigger = trigs.Tags[i];
40 if (rulePrefixTester.test(trigger.MatchName)) {
41 c.deleteTagTrigger(trigger.ID);
42 }
43 }
44 }
45 });
46 });
47
48 it('can create a tag trigger', function(done) {
49 _client.createTagTrigger({
50 MatchName: prefix + "-" + new Date().valueOf(),
51 TrackOpens: true
52 }, done);
53 });
54
55 it('can edit a tag trigger', function(done) {
56 var name = prefix + "-" + new Date().valueOf();
57 _client.createTagTrigger({
58 MatchName: name,
59 TrackOpens: true
60 }, function(err, trigger) {
61 _client.editTagTrigger(trigger.ID, {
62 MatchName: name + "-updated",
63 TrackOpens: false
64 }, done);
65 });
66
67 });
68
69 it('can can delete a tag trigger', function(done) {
70 var name = prefix + "-" + new Date().valueOf();
71 _client.createTagTrigger({
72 MatchName: name,
73 TrackOpens: true
74 }, function(err, trigger) {
75 _client.deleteTagTrigger(trigger.ID, done);
76 });
77 });
78
79 it('can get a tag trigger', function(done) {
80 var name = prefix + "-" + new Date().valueOf();
81 _client.createTagTrigger({
82 MatchName: name,
83 TrackOpens: true
84 }, function(err, trigger) {
85 _client.getTagTrigger(trigger.ID, done);
86 });
87 });
88
89 it('can get tag triggers', function(done) {
90 _client.getTagTriggers({
91 count: 1
92 }, done);
93 });
94
95 it('can get inbound rule triggers', function(done) {
96 _client.getInboundRuleTriggers({
97 count: 1
98 }, done);
99 });
100
101 it('can create inbound rule triggers', function(done) {
102 _client.createInboundRuleTrigger({
103 Rule: name = prefix + "-" + new Date().valueOf() + "@example.com"
104 }, done);
105 });
106
107 it('can delete inbound rule triggers', function(done) {
108 _client.createInboundRuleTrigger({
109 Rule: name = prefix + "-" + new Date().valueOf() + "@example.com"
110 }, function(err, trigger) {
111 _client.deleteInboundRuleTrigger(trigger.ID, done);
112 });
113 });
114
115});
\No newline at end of file