Add tests. Fixes #10.
@@ -1,5 +1,7 @@
{
"gitignore-file": ".gitignore",
"src/name.js": "src/{%= name %}.js",
- "src/name.st": "src/{%= name %}.st"
+ "src/name.st": "src/{%= name %}.st",
+ "src/test.js": "src/{%= name %}-Tests.js",
+ "src/test.st": "src/{%= name %}-Tests.st"
}
@@ -1,6 +1,7 @@
'use strict';
module.exports = function(grunt) {
+ var path = require('path');
// Project configuration.
grunt.initConfig({
@@ -11,6 +12,24 @@ module.exports = function(grunt) {
'<%= pkg.homepage ? "* " + pkg.homepage + "\\n" : "" %>' +
'* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' +
' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */\n',
+ amberc: {
+ options: {
+ amber_dir: path.join(__dirname, "bower_components", "amber"),
+ closure_jar: ''
+ },
+ test_runner: {
+ src: ['node_modules/amber-dev/lib/Test.st'],
+ libraries: [
+ /* add dependencies packages here */
+ '{%= name %}', /* add other code-to-test packages here */
+ 'SUnit',
+ '{%= name %}-Tests' /* add other test packages here */
+ ],
+ options: { library_dirs: ['src'] },
+ main_class: 'NodeTestRunner',
+ output_name: 'test_runner'
+ }
// Task configuration.
});
@@ -1,2 +1,4 @@
/node_modules/
/bower_components/
+
+/test_runner.js
@@ -0,0 +1,7 @@
+define("{%= namespace %}/{%= name %}-Tests", ["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st", "amber_vm/globals", "amber_core/SUnit"], function(smalltalk,nil,_st,globals){
+smalltalk.addPackage('{%= name %}-Tests');
+smalltalk.packages["{%= name %}-Tests"].transport = {"type":"amd","amdNamespace":"{%= namespace %}"};
+smalltalk.addClass('{%= name %}Test', globals.TestCase, [], '{%= name %}-Tests');
+});
@@ -0,0 +1,5 @@
+Smalltalk current createPackage: '{%= name %}-Tests'!
+TestCase subclass: #{%= name %}Test
+ instanceVariableNames: ''
+ package: '{%= name %}-Tests'!
@@ -74,6 +74,9 @@ exports.template = function(grunt, init, done) {
"amber-dev": "0.0.3"
};
props.node_version = '>= 0.8.0';
+ props.scripts = {
+ "test": "grunt amberc:test_runner && node test_runner.js && ( rm test_runner.js || del test_runner.js )"
+ };
// Generate package.json file, used by npm and grunt.
init.writePackageJSON('package.json', props);
@@ -88,6 +91,7 @@ exports.template = function(grunt, init, done) {
"**/.*",
"node_modules",
"bower_components",
+ "/test_runner.js",
"test",
"tests"
],