# powerbi-visuals-utils-testutils **Repository Path**: mirrors_microsoft/powerbi-visuals-utils-testutils ## Basic Information - **Project Name**: powerbi-visuals-utils-testutils - **Description**: Test utility interfaces for testing powerbi custom visuals - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-09 - **Last Updated**: 2026-10-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Microsoft Power BI visuals TestUtils [![Build](https://github.com/microsoft/powerbi-visuals-utils-testutils/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/microsoft/powerbi-visuals-utils-testutils/actions/workflows/build.yml) [![npm version](https://img.shields.io/npm/v/powerbi-visuals-utils-testutils.svg)](https://www.npmjs.com/package/powerbi-visuals-utils-testutils) [![npm](https://img.shields.io/npm/dm/powerbi-visuals-utils-testutils.svg)](https://www.npmjs.com/package/powerbi-visuals-utils-testutils) > TestUtils is a set of mocks and fakes in order to simplify unit testing for Power BI custom visuals ## Usage * [Usage Guide](https://docs.microsoft.com/en-us/power-bi/developer/visuals/utils-test) ## 2.3.0 Migration note From version 2.3.0 `testDom` function returns `HTMLElement` instead of `JQuery` object. If you are using JQuery in tests, wrap the `testDom` calls with `$(...)` for compatibility: ```typescript // 2.2.1 and below let element: JQuery = testDom("100", "100"); // 2.3.0 and above let element: JQuery = $(testDom("100", "100")); ``` The motivation is not to force JQuery usage. It might be not necessary in tests. In lots of cases `element.get(0)` is the next operation after receiving an element with `testDom`. Now JQuery is not required to use powerbi-visuals-utils-testutils, so you can drop this dependency. If you keep it, you can easily migrate your code to 2.3.* version using the example above. ## Development Common scripts: | Command | Description | | --- | --- | | `npm ci` | Install pinned dependencies from `package-lock.json` | | `npm run build` | Compile `src/` into `lib/` with TypeScript declarations and source maps | | `npm test` | Run the full Vitest suite once (used by CI) | | `npm run test:watch` | Run Vitest in watch mode | | `npm run test:coverage` | Run Vitest once and produce a coverage report under `coverage/` | | `npm run test:typecheck` | Type-check the `test/` tree using `test/tsconfig.json` | | `npm run lint` | Lint the codebase with ESLint flat config in `eslint.config.mjs` | | `npm run lint:fix` | Auto-fix lint issues where possible | ### TypeScript configs * `tsconfig.json` builds `src/` to `lib/`. * `test/tsconfig.json` extends the main config, adds `vitest/globals` types, and includes `test/`. ### Tests Tests live under `test/` and run via Vitest in a `happy-dom` environment. See `vitest.config.mts`. ## Contributing * Read our [contribution guideline](./CONTRIBUTING.md) to find out how to contribute bugs fixes and improvements * [Issue Tracker](https://github.com/Microsoft/powerbi-visuals-utils-testutils/issues) * [Development workflow](./docs/dev/development-workflow.md) * [How to build](./docs/dev/development-workflow.md#how-to-build) * [How to run unit tests locally](./docs/dev/development-workflow.md#how-to-run-unit-tests-locally) ## License See the [LICENSE](./LICENSE) file for license rights and limitations (MIT).