Skip to content

Commit 679bfb0

Browse files
author
Dolev Dotan
committed
Tradeoff Analytics metadata and events: tests, fixes, conform to style
guide (metadata_header instead of metadataHeader)
1 parent 1680f30 commit 679bfb0

File tree

3 files changed

+66
-9
lines changed

3 files changed

+66
-9
lines changed

services/tradeoff_analytics/v1.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818

1919
var extend = require('extend');
2020
var requestFactory = require('../../lib/requestwrapper');
21-
var omit = require('object.omit');
22-
var pick = require('object.pick');
21+
var omit = require('object.omit');
2322

2423
function TradeoffAnalytics(options) {
2524
// Default URL
@@ -46,13 +45,14 @@ function TradeoffAnalytics(options) {
4645
*/
4746
TradeoffAnalytics.prototype.dilemmas = function(params, callback) {
4847
params = params || {};
48+
4949
var parameters = {
5050
options: {
5151
method: 'POST',
5252
url: '/v1/dilemmas',
53-
body: omit(params,['metadataHeader']),
53+
body: omit(params,['metadata_header']),
5454
headers: {
55-
'x-watson-metadata' : pick(params,['metadataHeader'])
55+
'x-watson-metadata' : params.metadata_header
5656
},
5757
json: true
5858
},
@@ -71,13 +71,14 @@ TradeoffAnalytics.prototype.dilemmas = function(params, callback) {
7171
*/
7272
TradeoffAnalytics.prototype.events = function(params, callback) {
7373
params = params || {};
74+
7475
var parameters = {
7576
options: {
7677
method: 'POST',
7778
url: '/v1/events',
78-
body: omit(params,['metadataHeader']),
79+
body: omit(params,['metadata_header']),
7980
headers: {
80-
'x-watson-metadata' : pick(params,['metadataHeader'])
81+
'x-watson-metadata' : params.metadata_header
8182
},
8283
json: true
8384
},

test/resources/ta_events.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
[{
2+
"widget_instance_uuid" : "e8d263d9-a0a7-43f4-81cf-2767ad246cb5",
3+
"widget_show_uuid" : null,
4+
"dilemma_call_uuid" : null,
5+
"event_number" : 0,
6+
"category" : "widget",
7+
"action" : "started",
8+
"object" : "basic",
9+
"value" : {
10+
"optionHighlighting" : false,
11+
"favorites" : true,
12+
"favoritesTab" : false,
13+
"optionDetails" : true,
14+
"filters" : true,
15+
"filterHistogram" : false,
16+
"objectivesOnly" : true,
17+
"optimalsList" : true,
18+
"autoExcludedList" : true,
19+
"incompleteList" : true,
20+
"tradeoffAnalyzer" : true,
21+
"undoRedo" : false,
22+
"exploreViz" : "both",
23+
"questionEditor" : "editableNoToggle",
24+
"bidiTextDir" : "auto",
25+
"analytics" : "MetadataAndEvents"
26+
},
27+
"timestamp" : 1442414658641
28+
}]

test/test.tradeoff_analytics.v1.js

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,20 @@
33
var assert = require('assert');
44
var watson = require('../lib/index');
55
var nock = require('nock');
6+
var extend = require('extend');
67

78
describe('tradeoff_analytics', function() {
89

910
var noop = function() {};
1011

1112
var service_request = require('./resources/dilemma_problem');
13+
var events_request = require('./resources/ta_events');
1214

1315
var service_response = {};
1416

1517
var service_path = '/v1/dilemmas';
16-
18+
var events_path = '/v1/events';
19+
1720
var service = {
1821
username: 'batman',
1922
password: 'bruce-wayne',
@@ -27,6 +30,11 @@ describe('tradeoff_analytics', function() {
2730
.persist()
2831
.post(service_path, service_request)
2932
.reply(200, service_response);
33+
nock(service.url)
34+
.persist()
35+
.post(events_path, events_request)
36+
.reply(200);
37+
3038
});
3139

3240
after(function() {
@@ -43,13 +51,33 @@ describe('tradeoff_analytics', function() {
4351
tradeoff_analytics.dilemmas({}, missingParameter);
4452
tradeoff_analytics.dilemmas(null, missingParameter);
4553
tradeoff_analytics.dilemmas(undefined, missingParameter);
54+
55+
tradeoff_analytics.events({}, missingParameter);
56+
tradeoff_analytics.events(null, missingParameter);
57+
tradeoff_analytics.events(undefined, missingParameter);
4658
});
47-
59+
4860
it('should generate a valid payload', function() {
49-
var req = tradeoff_analytics.dilemmas(service_request, noop);
61+
var params = extend({}, service_request);
62+
params.metadata_header = 'test_header_content';
63+
var req = tradeoff_analytics.dilemmas(params, noop);
5064
var body = new Buffer(req.body).toString('ascii');
5165
assert.equal(req.uri.href, service.url + service_path);
5266
assert.equal(body, JSON.stringify(service_request));
67+
assert.notEqual(body, JSON.stringify(params));
68+
assert.equal(req.headers['x-watson-metadata'], params.metadata_header);
69+
assert.equal(req.method, 'POST');
70+
});
71+
72+
it('should forward the events correctly', function() {
73+
var params = extend({}, events_request);
74+
params.metadata_header = 'test_header_content';
75+
var req = tradeoff_analytics.events(params, noop);
76+
var body = new Buffer(req.body).toString('ascii');
77+
assert.equal(req.uri.href, service.url + events_path);
78+
assert.equal(body, JSON.stringify(events_request));
79+
assert.notEqual(body, JSON.stringify(params));
80+
assert.equal(req.headers['x-watson-metadata'], params.metadata_header);
5381
assert.equal(req.method, 'POST');
5482
});
5583

0 commit comments

Comments
 (0)