summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2015-08-09 19:38:49 +0300
committerAlon Levy <alon@pobox.com>2015-08-09 19:45:06 +0300
commitaafc58c9e15143dd5239950340579efee5c95979 (patch)
tree1ae5625a7049890f54c783126a4784f4a1578fdd /src
parent3b0ec2629ebee58e2b49c614d8addf2e5da23e1c (diff)
initial tests based on karma + jasmine, run with karma start
Diffstat (limited to 'src')
-rw-r--r--src/client/test-main.js53
-rw-r--r--src/client/util_test.js12
2 files changed, 65 insertions, 0 deletions
diff --git a/src/client/test-main.js b/src/client/test-main.js
new file mode 100644
index 00000000..c12f18b8
--- /dev/null
+++ b/src/client/test-main.js
@@ -0,0 +1,53 @@
+var allTestFiles = [];
+var TEST_REGEXP = /(spec|test)\.js$/i;
+
+// Get a list of all the test files to include
+Object.keys(window.__karma__.files).forEach(function(file) {
+ if (TEST_REGEXP.test(file)) {
+ // Normalize paths to RequireJS module names.
+ // If you require sub-dependencies of test files to be loaded as-is (requiring file extension)
+ // then do not normalize the paths
+ var normalizedTestModule = file.replace(/^\/base\/|\.js$/g, '');
+ allTestFiles.push(normalizedTestModule);
+ }
+});
+
+var lib_path = '/base/res/client/lib/';
+
+require.config({
+ // Karma serves files under /base, which is the basePath from your config file
+ baseUrl: '/base',
+
+ shim: {
+ 'socketio': { exports: 'io' },
+ 'Bacon': {
+ deps: ['jquery'],
+ exports: 'Bacon',
+ }
+ },
+
+ paths: {
+ util: '/base/src/client/util',
+ stam: '/base/src/client/stam',
+
+ // libraries paths
+ autocomplete: lib_path + 'autocomplete',
+ Bacon: lib_path + 'Bacon',
+ caret: lib_path + 'caret',
+ cola: lib_path + 'cola',
+ domain_types: 'res/local/js/domain_types',
+ d3: lib_path + 'd3/d3',
+ feedback: lib_path + 'feedback',
+ FileSaver: lib_path + 'FileSaver',
+ html2canvas: lib_path + 'html2canvas',
+ jquery: lib_path + 'jquery',
+ socketio: lib_path + 'socket.io/socket.io.min_0.9.10',
+ underscore: lib_path + 'underscore',
+ },
+
+ // dynamically load all test files
+ deps: allTestFiles,
+
+ // we have to kickoff jasmine, as it is asynchronous
+ callback: window.__karma__.start
+});
diff --git a/src/client/util_test.js b/src/client/util_test.js
new file mode 100644
index 00000000..2477aaa2
--- /dev/null
+++ b/src/client/util_test.js
@@ -0,0 +1,12 @@
+define(['util'], function(util) {
+ describe("set from object", function () {
+ it("set from object", function() {
+ expect(util.set_from_object({1:1, 2:2})).toEqual({1:1, 2:1});
+ expect(util.set_from_object({})).toEqual({});
+ });
+ it("set from array", function() {
+ expect(util.set_from_array([1, 2])).toEqual({1:1, 2:1});
+ expect(util.set_from_array([])).toEqual({});
+ });
+ });
+})