1.0.46 • Published 6 years ago

signals-garasu-cli v1.0.46

Weekly downloads
2
License
MIT
Repository
-
Last release
6 years ago

Garasu

Test Project

A valid project folder should look like

project
|
| garasu.json
|-- test1
|	 |- index.js
|-- test2
		|- index.js

The project is defined by garasu.json

garasu.json

{
	tasks: [{
		name: "Test 1",
		// relative path to the executable script
		main: "test2/test1.js"
	},{
		name: "Test 2",
		main: "test2/index.js"
	}]
}

Credential

There are two different credential locations;

  1. ~/.garasu
  2. or use -u -p -d in the command line

Three different format

{
	user: string,
	password: string,
	domain: string,
}
{
	key: string,
	token: string,
	domain: string
}
/*The APIKey string downloaded from Signals web*/

You are responsible to protect your credential!

Command Line

Install

npm -g install signals-garasu-cli

Setup Test Project

mkdir MyTest
cd MyTest
garasu init
vi test.js

Run Rest Project

# Run test in the garasu.json under current dir
garasu -u <user> -p <password> -d <domain> -r <signals|beta|alpha|zh|zh-2>
# Run test with specific config file
garasu -c <configFile> -u <user> -p <password> -d <domain> -r <signals|beta|alpha|zh|zh-2>
# Run test with scripts
garasu -u <user> -p <password> -d <domain> -r <signals|beta|alpha|zh|zh-2> script1.js script2.js ...

HTML Report

garasu -html

Test script

Garaus will load the Mocha+Chai env for you, and inject global instance: Signals, chai, assert, expect. Help you to focus on the test it self.

create a .babelrc under your project dir if you want to use es6

{
	"presets": [
		["env", { "targets": { "node": 6 }, "useBuiltIns": true }],
		"stage-2",
		"es2015"
	],
	"plugins": ["transform-es2015-modules-commonjs"],
	"env": {
		"production": {
			"plugins": ["babel-plugin-dev-expression"]
		},
		"development": {
			"plugins": [
				"transform-class-properties",
				"transform-es2015-classes"
			]
		}
	},
	"sourceMaps": "false"
}
/*
	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');

Reference

  1. Mocha
  2. Chai
  3. chai-json-schema
1.0.46

6 years ago

1.0.44

6 years ago

1.0.43

7 years ago

1.0.42

7 years ago

1.0.40

7 years ago

1.0.38

7 years ago

1.0.37

7 years ago

1.0.36

7 years ago

1.0.35

7 years ago

1.0.34

7 years ago

1.0.33

7 years ago

1.0.32

7 years ago

1.0.31

7 years ago

1.0.29

7 years ago

1.0.28

7 years ago

1.0.27

7 years ago

1.0.26

7 years ago

1.0.25

7 years ago

1.0.24

7 years ago

1.0.23

7 years ago

1.0.22

7 years ago

1.0.21

7 years ago

1.0.20

7 years ago

1.0.19

7 years ago

1.0.18

7 years ago

1.0.17

7 years ago

1.0.15

7 years ago

1.0.13

7 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago