node package manager

signals-garasu-core

Signal Garasu Core

Garasu core is build to simplify test on Signals.

  1. Load user credential and provide Singals API to request data
  2. Set up mocha+chai env, so you can focus on the test case
  3. 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');