diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..b512c09d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/Makefile b/Makefile index 2045f806..f54d6d40 100644 --- a/Makefile +++ b/Makefile @@ -6,3 +6,6 @@ xlsx.js: $(DEPS) .PHONY: clean clean: rm xlsx.js + +test: + npm test \ No newline at end of file diff --git a/package.json b/package.json index af8238d8..6e21f651 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "jasmine-node": "x" }, "scripts": { - "test": "jasmine-node tests/" + "pretest": "git submodule init && git submodule update", + "test": "jasmine-node --verbose tests/" }, "engines": { "node": ">=0.6" } } diff --git a/tests/Common.js b/tests/Common.js new file mode 100644 index 00000000..2d28a5fc --- /dev/null +++ b/tests/Common.js @@ -0,0 +1,25 @@ +var XLSX = require('../'); + +var tests = { + 'should be able to open workbook': function (file) { + var xlsx = XLSX.readFile('tests/files/' + file); + expect(xlsx).toBeTruthy(); + expect(xlsx).toEqual(jasmine.any(Object)); + }, + 'should define all api properties correctly': function (file) { + var xlsx = XLSX.readFile('tests/files/' + file); + expect(xlsx.Workbook).toEqual(jasmine.any(Object)); + expect(xlsx.Props).toBeDefined(); + expect(xlsx.Deps).toBeDefined(); + expect(xlsx.Sheets).toEqual(jasmine.any(Object)); + expect(xlsx.SheetNames).toEqual(jasmine.any(Array)); + expect(xlsx.Strings).toBeDefined(); + expect(xlsx.Styles).toBeDefined(); + } +}; + +module.exports = function (file) { + for (var key in tests) { + it(key, tests[key].bind(undefined, file)); + } +}; \ No newline at end of file diff --git a/tests/EncodedSpec.js b/tests/EncodedSpec.js new file mode 100644 index 00000000..8cb4043f --- /dev/null +++ b/tests/EncodedSpec.js @@ -0,0 +1,8 @@ +var XLSX = require('../'); +var testCommon = require('./Common.js'); + +var file = 'חישוב_נקודות_זיכוי.xlsx'; + +describe(file, function () { + testCommon(file); +}); \ No newline at end of file diff --git a/tests/FormulaSpec.js b/tests/FormulaSpec.js new file mode 100644 index 00000000..c67cfb83 --- /dev/null +++ b/tests/FormulaSpec.js @@ -0,0 +1,9 @@ +var XLSX = require('../'); +var testCommon = require('./Common.js'); + +var file = 'formula_stress_test.xlsx'; + +describe(file, function () { + // Opening the file currently crashes node + //testCommon(file); +}); \ No newline at end of file diff --git a/tests/InterviewSpec.js b/tests/InterviewSpec.js new file mode 100644 index 00000000..4ab2e5a3 --- /dev/null +++ b/tests/InterviewSpec.js @@ -0,0 +1,8 @@ +var XLSX = require('../'); +var testCommon = require('./Common.js'); + +var file = 'interview.xlsx'; + +describe(file, function () { + testCommon(file); +}); \ No newline at end of file diff --git a/tests/IssueSpec.js b/tests/IssueSpec.js new file mode 100644 index 00000000..cc667aef --- /dev/null +++ b/tests/IssueSpec.js @@ -0,0 +1,8 @@ +var XLSX = require('../'); +var testCommon = require('./Common.js'); + +var file = 'issue.xlsx'; + +describe(file, function () { + testCommon(file); +}); \ No newline at end of file diff --git a/tests/MixedSpec.js b/tests/MixedSpec.js new file mode 100644 index 00000000..3b119df4 --- /dev/null +++ b/tests/MixedSpec.js @@ -0,0 +1,8 @@ +var XLSX = require('../'); +var testCommon = require('./Common.js'); + +var file = 'mixed_sheets.xlsx'; + +describe(file, function () { + testCommon(file); +}); \ No newline at end of file diff --git a/tests/NamedRangesSpec.js b/tests/NamedRangesSpec.js new file mode 100644 index 00000000..1e41a7ea --- /dev/null +++ b/tests/NamedRangesSpec.js @@ -0,0 +1,8 @@ +var XLSX = require('../'); +var testCommon = require('./Common.js'); + +var file = 'named_ranges_2011.xlsx'; + +describe(file, function () { + testCommon(file); +}); \ No newline at end of file