diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/Makefile b/Makefile index 2045f80..f54d6d4 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 af8238d..6e21f65 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 0000000..2d28a5f --- /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 0000000..8cb4043 --- /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 0000000..c67cfb8 --- /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 0000000..4ab2e5a --- /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 0000000..cc667ae --- /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 0000000..3b119df --- /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 0000000..1e41a7e --- /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