0.6.4 • Published 6 years ago

tractor-plugin-loader v0.6.4

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

tractor-plugin-loader

Plugin loader for tractor to provide additional UI testing capabilities.

Greenkeeper badge npm version bitHound Overall Score Code Climate Test Coverage

How it works:

tractor-plugin-loader is automatically installed whenever you run tractor init in a project. Then, whenever tractor start is run on that project, the loader looks through your installed node modules, and finds any that are called tractor-plugin-whatever. Those plugins could provide new actions for Page Objects, new report generators, or entirely new bits of UI/Functionality for the tractor-client application, all depending on what the plugin exports.

API:

A tractor plugin is just a plain old node module, with a few specially named exports, and maybe some bundled UI code. If you want to see an example of a basic plugin, check out tractor-plugin-browser.

description (optional)

The description of any actions that the plugin provides to tractor. It should be an object with a single property, methods: Array<Method>.

create (optional):

Defines how an instance of the plugin will be instantiated when Protractor runs. It should return a concrete implementation of each of the description.

Returns:

  • plugin: any

init (optional):

Initialise anything that your plugin needs before it runs. This may be things like creating directories or getting information about the current environment, before tractor starts running.

Returns:

  • promise?: Promise

run (optional):

Run any extra code you need before the app server starts. At the point that this is called all other plugins have been initialised and served.

Returns:

  • promise?: Promise

serve (optional):

Define any new endpoints that you want to attach to the tractor-server, typically for consuming from the tractor-client.

Returns:

  • promise?: Promise

UI Script (optional):

A plugin can also contain UI code. The loader looks for a file at node_modules/tractor-plugin-my-plugin/dist/client/bundle.js and injects that into the tractor-client when it is served. It is run before the bootstrapping of the Angular application, so it can set-up routes etc. To see an example of how this works, check out tractor-plugin-visual-regression.

Interfaces:

Method:

interface Method {
    name: string;
    description: string;
    arguments: Array<Argument>;
    returns?: 'promise' | 'boolean' | 'number' | 'string';
}

Argument:

interface Argument {
    name: string;
    description: string;
    type: 'boolean' | 'number' | 'string';
    required?: boolean;
}
0.6.4

6 years ago

0.6.3

7 years ago

0.6.2

7 years ago

0.6.1

7 years ago

0.6.0

7 years ago

0.5.1

7 years ago

0.5.0

7 years ago

0.4.0

7 years ago

0.4.0-beta.0

7 years ago

0.3.0-beta.0

7 years ago

0.2.2

7 years ago

0.2.2-beta.1

7 years ago

0.2.2-beta.0

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.2.0-beta.1

7 years ago

0.2.0-beta.0

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.1.0-beta.6

8 years ago

0.1.0-beta.5

8 years ago

0.1.0-beta.4

8 years ago

0.1.0-beta.3

8 years ago

0.1.0-beta.2

8 years ago

0.1.0-beta.1

8 years ago

0.1.0-beta.0

8 years ago