kazana-example
Version:
Kazana example app
77 lines (68 loc) • 2.26 kB
JavaScript
var test = require('../utils/test')
var request = require('request').defaults({
json: true
})
var processingTimeout = 1000
test('Transformations', function (group, server) {
request({
method: 'POST',
url: server.info.uri + '/kazana/account/api/session',
body: {
name: 'kazana-admin@example.com',
password: server.settings.app.kazana.admin.password
}
}, function (error, response, body) {
group.error(error)
group.ok('bearerToken' in body, 'has bearer token')
var authorizedRequest = request.defaults({
baseUrl: server.info.uri,
headers: {
authorization: 'Bearer ' + body.bearerToken
}
})
group.test('Transformation of newly uploaded reports', function (t) {
authorizedRequest({
method: 'POST',
url: '/kazana/raw-data/api/submissions',
body: {
sourceId: 'bookkeeping',
scope: {
id: '2013-3',
year: '2013',
quarter: '3'
},
name: 'integration-test-2',
data: '+222.22 test-transform-grinder\n+555.11 test-transform-camera'
}
}, function (error, response, body) {
t.error(error)
t.is(body.id, 'bookkeeping_2013-3')
t.test('Document gets marked as processed', function (s) {
// give kazana a little time to process
setTimeout(function () {
authorizedRequest('/kazana/raw-data/api/submissions/bookkeeping_2013-3', function (error, response, body) {
s.error(error)
s.ok('transformedAt' in body, 'document has `transformedAt`')
s.end()
})
}, processingTimeout)
})
t.test('Document is visible in the index', function (s) {
// give kazana a little time to process
setTimeout(function () {
authorizedRequest('/indices/movementsByCategory', function (error, response, body) {
s.error(error)
s.same(body, {
'test-transform-camera': 555.11,
'test-transform-grinder': 222.22
})
s.end()
})
}, processingTimeout)
})
t.end()
})
})
group.end()
})
})