View on GitHub

Kobold-core

Core library for shared objects of the Kobold testing framework

Download this project as a .zip file Download this project as a tar.gz file

Kobold-Core

Core library for shared objects of the Kobold testing framework.

Build Status npm version

NPM

API-Documentation

Coverage Report

Table of Contents

Installation

Install this module with the following command:

npm install kobold-core

Add the module to your package.json dependencies:

npm install --save kobold-core

Add the module to your package.json dev-dependencies:

npm install --save-dev kobold-core

Require the module in your source-code:

var core = require('kobold-core');

Usage

The module exposes 2 major components:

Storage Adapter

There are two storage adapter available:

These adapters can be accessed through the storageAdapters property:

var FileStorageAdapter = core.storageAdapters.file;

A build function is available to create and configure a storage adapter:

var storageAdapter = core.buildStorageAdapter('build1', {
    type: '...'
});

An abstract storage adapter is exposed to implement additional plugins:

var StoragePlugin = core.StorageAdapter.extend({
    // Implementation
});

File Storage Adapter

This storage adapter uses the local filesystem to manage screens.

var fileStorageAdapter = core.buildStorageAdapter('build1', {
    type: 'File',
    options: {
        path: 'path/to/screens'
    }
});

Key-Value Storage Adapter

The Key-Value storage adapter manages screens on a key-value storage system.

var keyValueStorageAdapter = core.buildStorageAdapter('build1', {
    type: 'KeyValue',
    connection: connectionAdapter,
    options: {
        company: '<company-id>',
        department: '<department-id>',
        project: '<project-id>',
        job: '<job-id>'
    }
});

Connection Adapter

Currently, only one connection adapter is available:

These adapters can be accessed through the connectionAdapters property:

var RiakConnectionAdapter = core.connectionAdapters.Riak;

A build function is available to create and configure a connection adapter:

var riakStorageAdapter = core.buildConnectionAdapter({
    type: 'Riak',
    options: {
        host: 'www.example.org'
    }
});

An abstract connection adapter is exposed to implement additional plugins:

var ConnectionPlugin = core.ConnectionAdapter.extend({
    // Implementation
});

Riak Connection Adapter

This adapter can be supplied to the Key-Value storage adapter to save the screens in a Riak grid.

var riakStorageAdapter = core.buildConnectionAdapter({
    type: 'Riak',
    options: {
        host: 'www.example.org'
    }
});

var keyValueStorageAdapter = core.buildStorageAdapter('build1', {
    type: 'KeyValue',
    connection: riakStorageAdapter,
    options: {
        company: '<company-id>',
        department: '<department-id>',
        project: '<project-id>',
        job: '<job-id>'
    }
});

API-Documentation

Generate the documentation with following command:

npm run docs

The documentation will be generated in the docs folder of the module root.

Tests

Run the tests with the following command:

npm run test

The code-coverage will be written to the coverage folder in the module root.

Third-party libraries

The following third-party libraries are used by this module:

Dependencies

Dev-Dependencies

License

The MIT License

Copyright 2014 Yahoo Inc.