Products

Tests

Overview

This guide provides instructions on integrating Jest to test your implementations using any jSuites plugins.

Blueprint

The example below demonstrates a test where the render method of the mask plugin is invoked, and the output is validated against the specified assertions.

describe('Testing jSuites.mask', () => {
    it('Render method', function() {
        expect(jSuites.mask.render(123, { mask: '00000'}, true)).toBe('00123');
        expect(jSuites.mask.render(11.45, { mask: '0.0' }, true)).toBe('11.5');
    });
});

Testing Plugins That Use the DOM

Install the jsdom package to test plugins on HTML elements and validate their behavior. Once configured, use the example below to verify if an element is added or removed from the document body.

describe('Testing jSuites.contextmenu', () => {
    test('Testing if elements are being displayed in HTML', () => {
        document.body.innerHTML = '<div id="root"></div>';
        let div = document.getElementById('root')

        jSuites.contextmenu(div, {
            items: [
                {
                    title: 'Select All',
                    shortcut: 'Ctrl + A',
                    tooltip: 'Method to Select All Text',
                },
            ],
        })

        expect(document.body.innerHTML).toContain('Select All')
        expect(document.body.innerHTML).toContain('Ctrl + A')
        expect(document.body.innerHTML).toContain('Method to Select All Text')
    });
});

More examples in our GitHub repository

Running Your Tests

Create a ./test folder in your project root and include your test files.

Run the tests from the command line using:

npm run test

Troubleshooting

Not possible to load a file outside the module

Issue: Unable to Load a File Outside the Module

This error occurs when using the import statement in a Node.js project without properly configuring the module type in package.json. Node.js defaults to CommonJS, causing issues with ES module compatibility.

Solution:

To address this issue, follow these steps:

  • Open your package.json file.
  • Add the 'type' field with the value 'module' as shown below:

{ "type": "module", // ... other package.json configurations }

  • Save the package.json file.
  • Run your tests.
  • Optionally, remove the type field from package.json after testing.

This solution allows for proper module loading when working with ES modules and CommonJS in Node.js.