Testing

Introduction

Unit testing ensures robust Jspreadsheet integrations by validating functionality and catching regressions early. This guide uses Mocha, Chai, and JSDOM to test data grid behaviour in a simulated browser environment.

Environment Setup

Set up a basic environment to implement Jspreadsheet testing. Follow these steps or clone our GitHub example project.

Step 1: Clone the Project

Clone a setup with Jspreadsheet pre-installed and a test file:

git clone https://github.com/jspreadsheet/tests.git cd tests 

Step 2: Install the Dependencies

Install required libraries using npm:

npm install jspreadsheet-ce@5 

Step 3: Configure Mocha

Create or edit the mocha.config.js file in the project root to configure Mocha and emulate the browser environment using JSDOM.

#! /usr/bin/env node require('jsdom-global')(undefined, { url: 'https://localhost' }); const jspreadsheet = require('jspreadsheet'); global.jspreadsheet = jspreadsheet; global.root = document.createElement('div'); global.root.style.width = '100%'; global.root.style.height = '100%'; document.body.appendChild(global.root); exports.mochaHooks = { afterEach(done) { jspreadsheet.destroyAll(); done(); }, }; 

Step 4: Create your first test

Inside the test folder, create a file named data.js:

const { expect } = require('chai'); describe("Data", () => { it("Testing data", () => { let test = jspreadsheet(root, { worksheets: [ { data: [ ["Mazda", 2001, 2000], ["Peugeot", 2010, 5000], ["Honda Fit", 2009, 3000], ["Honda CRV", 2010, 6000], ], minDimensions: [4, 4] }, ], }); expect(test[0].getValue("A1", true)).to.equal("Mazda"); expect(test[0].getValue("A2", true)).to.equal("Peugeot"); expect(test[0].getValue("B1", true)).to.equal("2001"); }); }); 

Step 5: Running the Tests

After writing your tests, you can run them with the following command:

npm run test