Browse Source

Merge pull request #17 from amber-smalltalk/add-tests

Add tests. Fixes #10.
Manfred Kröhnert 10 years ago
parent
commit
85d24e71d8
6 changed files with 40 additions and 1 deletions
  1. 3 1
      rename.json
  2. 19 0
      root/Gruntfile.js
  3. 2 0
      root/gitignore-file
  4. 7 0
      root/src/test.js
  5. 5 0
      root/src/test.st
  6. 4 0
      template.js

+ 3 - 1
rename.json

@@ -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"
 }

+ 19 - 0
root/Gruntfile.js

@@ -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.
   });
 

+ 2 - 0
root/gitignore-file

@@ -1,2 +1,4 @@
 /node_modules/
 /bower_components/
+
+/test_runner.js

+ 7 - 0
root/src/test.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');
+
+});

+ 5 - 0
root/src/test.st

@@ -0,0 +1,5 @@
+Smalltalk current createPackage: '{%= name %}-Tests'!
+TestCase subclass: #{%= name %}Test
+	instanceVariableNames: ''
+	package: '{%= name %}-Tests'!
+

+ 4 - 0
template.js

@@ -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"
         ],