Signal Garasu Core
Garasu core is build to simplify test on Signals.
- Load user credential and provide Singals API to request data
- Set up mocha+chai env, so you can focus on the test case
- Organize test cases under project folders.
Check out signals-garasu-cli for a quick start.
Test Case Example
/*
Signals, assert, expect are automatically injected into global scope by garasu.
*/
let schema = {
title: 'Signals Response Schema',
type: 'object',
required: [ 'replied','request','version','message', 'payload' ],
properties: {
replied: {
type: 'array',
minItems: 1,
items: { type: 'number' }
},
request: { type: 'string' },
message: { type: 'array' },
version: { type: [ 'null', 'number' ] },
payload: {
$ref: "#definition/paging-item-payload"
}
},
definitions: {
'paging-item-payload': {
type: 'object',
required: [ 'items', 'total' ],
properties: {
total: { type: 'number' },
items: {
type: 'array',
items: { $ref: "#definition/job-status" }
}
}
},
"job-status": {
type: 'object',
required: [ 'name', 'source', 'user', 'version', 'fid', 'current', 'status' ],
properties: {
name: { type: 'string' },
user: { type: 'user' },
version: { type: 'number' },
fid: { type: 'string' },
current: { type: 'boolean', pattern: '^true$' },
status: {
type: 'object',
required: [ 'code', 'detail' ],
properties: {
code: {
type: 'number',
minimum: 40,
maximum: 40
},
detail: { type: 'string' }
}
}
}
}
}
}
describe('/user/jobs', () => {
describe('filters', () => {
it('Should get a list of fninished jobs', (done) => {
var filters = { "status.code": 40, current: 1 }
Signals.APIGet('/user/jobs?filters='+
encodeURIComponent(JSON.stringify(filters)),
(error,json,response) => {
assert.ifError(error, 'Error in the request');
assert.jsonSchema(json, schema );
// must be called for async test
done();
}
);
});
});
});
Track Resources Created during Tests
Use Garaus.track( type, fid ) to track resouce created during test. The system will send delete call automatically even the test script break.
The type can be jobs / dashboards / taxonomies / sentimentlists / stopwordslists / tokenslists / stopdocslists. For other objects, use the url as the type.
The system sends delete calls to the address url/fid after all tests get done.
// how to track a job
Garasu.track( 'jobs', jobId );
Selenium Web Driver
Checkout oAuth test for detail
driver = Garasu.openBrowser();
driver.get(kFEHost+'/blank.html');