UNPKG

mojio-js-sdk

Version:

Mojio javascript REST client.

164 lines (155 loc) 5.4 kB
// Generated by CoffeeScript 1.10.0 (function() { var MojioPushSDK, MojioSDK, async, nock, should; MojioSDK = require('../../src/nodejs/sdk/MojioSDK'); MojioPushSDK = require('../../src/nodejs/sdk/MojioPushSDK'); should = require('should'); async = require('async'); nock = require('nock'); describe('Node Mojio Fluent Push SDK', function() { var authorization, call, callback_url, changeVehicle, execute, mojio, sdk, setupNock, testErrorResult, timeout, user, vehicle; user = null; mojio = null; vehicle = null; call = null; timeout = 50; callback_url = "http://localhost:3000/callback"; authorization = { client_id: 'id', client_secret: 'secret', redirect_uri: 'http://localhost:3000/callback', username: 'testing', password: 'Test123!', scope: 'full', grant_type: 'password' }; sdk = new MojioSDK({ sdk: MojioPushSDK, client_id: 'id', client_secret: 'secret', test: true }); setupNock = function() { if ((process.env.FUNCTIONAL_TESTS != null)) { timeout = 3000; return { done: function() {} }; } else { call = nock('https://accounts.moj.io').post("/oauth2/token", authorization).reply(function(uri, requestBody, cb) { return cb(null, [ 200, { id: 1 } ]); }); return call; } }; testErrorResult = function(error, result) { (error === null).should.be["true"]; return (result !== null).should.be["true"]; }; changeVehicle = function(vehicle, cb) { return sdk.vehicle(vehicle).update(function(error, result) { if (error != null) { cb("Error: Vehicle could not be saved", null); } if (result != null) { return console.log("vehicle changed:" + result); } }); }; execute = function(test, done) { return async.series([ function(cb) { setupNock(); return sdk.token(authorization.redirect_uri).credentials(authorization.username, authorization.password).scope(['full']).callback(function(error, result) { var token; if (error) { console.log('Access Token Error', JSON.stringify(error.content) + " message:" + error.statusMessage + " url:" + sdk.url()); } else { token = result; console.log("Token:" + JSON.stringify(token)); } return cb(error, result); }); }, function(cb) { console.log("Mock User"); return sdk.mock().user({}).callback(function(error, result) { user = result; return cb(error, result); }); }, function(cb) { console.log("Mock Mojio"); return sdk.mojio({ UserId: user.id, Imei: "9991234567891234" }).mock(function(error, result) { mojio = result; return cb(error, result); }); }, function(cb) { console.log("Mock Vehicle"); return sdk.mock().vehicle({ MojioId: mojio.id, UserId: user.id, Speed: 80 }, (function(error, result) { vehicle = result; return cb(error, result); })); }, function(cb) { return test(cb); } ], function(error, results) { if (error != null) { console.log(error); } (error === null).should.be["true"]; (results !== null).should.be["true"]; return done(); }); }; beforeEach(function() { user = null; mojio = null; return vehicle = null; }); it('can create an observer of vehicles with minimum defaults', function(done) { this.timeout(2000); return execute(function(cb) { console.log("Start observer test"); return sdk.observe({ key: "UnitTestVehicleDefault" }).vehicles().callback(function(error, result) { testErrorResult(error, result); if (typeof result === 'boolean') { console.log("Change Vehicle"); return changeVehicle(vehicle, cb); } else if (++callbackTimes === 2 || result instanceof 'object') { return cb(null, result); } }); }, done); }); return it('can create a complex observer of vehicles', function(done) { this.timeout(2000); return execute(function(cb) { return sdk.observe({ key: "AccidentStateOnVehicleForMojio" }).vehicles().fields(["VIN", "AccidentState", "Battery", "Location", "Heading", "Altitude", "Speed", "Accelerometer", "LastContactTime", "GatewayTimeStamp", "FuelLevel"]).where("Battery > min or Battery < max and MojioId == [mojio id]").throttle("1 second").throttle("5 samples").debounce("3 samples").debounce("3 seconds").timing(['edge', 'high']).transport({ Type: "SignalR", Callback: function(error, result) { testErrorResult(error, result); return done(); } }).callback(function(error, result) { testErrorResult(error, result); return changeVehicle(vehicle, cb); }); }, done); }); }); }).call(this); //# sourceMappingURL=NodePushSDK_test.js.map