catan-steel-client
TID Node Workshop - Steel Client
Documentation
var catanSteelClient = require('catan-steel-client');
var client = catanSteelClient.createClient({
houses: {
baseURL: 'http://localhost:3005',
paths: {
abuela: '/abuela',
donpepito: '/casa'
}
},
conversation: {
baseURL: 'http://localhost:3004'
}
}
);
client.chop(function(err, steel) {
if(!err) {
console.log('I have steel!', steel);
}
});
Project build
The project is managed using Grunt Task Runner.
For a list of available task, type
grunt --help
The following sections show the available options in detail.
Testing
Mocha Test Runner + Chai Assertion Library + Sinon Spies, stubs.
The test environment is preconfigured to run BDD testing style with
chai.expect
and chai.should()
available globally while executing tests, as well as the Sinon-Chai plugin.
Module mocking during testing can be done with proxyquire
To run tests, type
grunt test
Tests reports can be used together with Jenkins to monitor project quality metrics by means of TAP or XUnit plugins.
To generate TAP report in report/test/unit_tests.tap
, type
grunt test-report
Coding guidelines
jshint, gjslint
Uses provided .jshintrc and .gjslintrc flag files. The latter requires Python and its use can be disabled
while creating the project skeleton with grunt-init.
To check source code style, type
grunt lint
Checkstyle reports can be used together with Jenkins to monitor project quality metrics by means of Checkstyle
and Violations plugins.
To generate Checkstyle and JSLint reports under report/lint/
, type
grunt lint-report
Continuous testing
Support for continuous testing by modifying a src file or a test.
For continuous testing, type
grunt watch
Source Code documentation
dox-foundation
Generates HTML documentation under site/doc/
. It can be used together with jenkins by means of DocLinks plugin.
For compiling source code documentation, type
grunt doc
Code Coverage
Istanbul
Generates HTML coverage under site/coverage/
and coverage report in report/coverage/cobertura-coverage.xml
.
The latter one can be used together with Jenkins to monitor project quality metrics by means of Cobertura plugin.
For analyzing the code coverage of your test, type
grunt coverage
Code complexity
Plato
Analizes code complexity using Plato and stores the report under site/report/
. It can be used together with jenkins
by means of DocLinks plugin.
For complexity report, type
grunt complexity
PLC
Update the contributors for the project
grunt contributors
Development environment
Initialize your environment with git hooks
grunt init-dev-env
Site generation
There is a grunt task to generate the GitHub pages of the project, publishing also coverage, complexity and JSDocs pages.
In order to initialize the GitHub pages, use:
grunt init-pages
This will also create a site folder under the root of your repository. This site folder is detached from your repository's
history, and associated to the gh-pages branch, created for publishing. This initialization action should be done only
once in the project history. Once the site has been initialized, publish with the following command:
grunt site
This command will only work after the developer has executed init-dev-env (that's the goal that will create the detached site).
This command will also launch the coverage, doc and complexity task (see in the above sections).