vitest-environment-ui5
v0.2.0
Published
Vitest testing environment for UI5
Downloads
116
Maintainers
Readme
vitest-environment-ui5
A Vitest Environment
for unit testing UI5
code. Run your unit tests in a blazing fast way! Neither webserver nor browser are required. It runs in Node.js
and uses jsdom
to emulate browser environment.
See Vitest Environment and jsdom for more details.
Installation
Install vitest-environment-ui5
, and vitest
, as devDependencies:
$ npm i -D vitest vitest-environment-ui5
Setup
Vitest uses node
as default test environment. In order to change it to a different environment, vitest-environment-ui5
, we will either have to define it in vitest.config.js
or add a @vitest-environment
docblock at the top of the test file. See Vitest Config for more details.
vitest-environment-ui5
builds jsdom
from a local HTML file, no webserver required. The HTML file should contain the UI5
bootstrap, similar to this one: ui5 bootstrap.
You can change the UI5 bootstrap configuration as you wish, just like in your webapp. You can even open the file in a browser to see UI5
being loaded. However, no tests will be executed.
Vitest Configuration
import { defineConfig } from "vitest/config";
export default defineConfig({
test: {
environment: "ui5",
environmentOptions: {
ui5: {
path: 'test/ui5-unit-test.html', // Path to the HTML file containing UI5 bootstrap
timeout: 200 // UI5 load timeout in ms, default is 100ms
}
}
}
});
Vitest DocBlock
/**
* @vitest-environment ui5
* @vitest-environment-options { "path": "test/ui5-unit-test.html" }
*/
import {expect, test} from 'vitest';
test('UI5 is loaded', () => {
expect(window.sap).toBeTruthy();
expect(sap).toBeTruthy();
expect(sap.ui.getCore()).toBeTruthy();
expect(sap.ui.version).toBeTruthy();
});
Run
Run the tests with Vitest
CLI:
$ vitest
Don't be afraid
jsdom
is not a real browser, but gets the job done for unit testing. All major javascript frameworks use it today: React
, Vue
, Svelte
, and even our old friend jQuery
. It has over 20M weekly downloads in NPM!
Author
Mauricio Lauffer
License
This project is licensed under the MIT License - see the LICENSE file for details.