@ornery/ui-grid-react 0.1.7-hotfix-1 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ornery/ui-grid-react",
3
- "version": "0.1.7-hotfix-1",
3
+ "version": "0.1.8",
4
4
  "description": "React wrapper for @ornery/ui-grid-core",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "scripts": {
36
36
  "start": "vite serve demo --config demo/vite.config.ts",
37
- "build": "npm run build --prefix ../ui-grid-core && tsup src/index.ts --format esm,cjs --tsconfig tsconfig.build.json --external react --external react-dom --external @ornery/ui-grid-core && tsc -p tsconfig.dts.json",
37
+ "build": "npm run build --prefix ../ui-grid-core && tsup src/index.ts --format esm,cjs --tsconfig tsconfig.build.json --external react --external react-dom --external @ornery/ui-grid-core && tsc -p tsconfig.dts.json && node -e \"require('fs').copyFileSync('src/ui-grid.css','dist/ui-grid.css')\"",
38
38
  "test": "vitest run",
39
39
  "test:watch": "vitest"
40
40
  }
@@ -3,7 +3,12 @@ import { render, screen, fireEvent, act } from '@testing-library/react';
3
3
  import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
4
4
  import { UiGrid } from './UiGrid';
5
5
  import type { UiGridProps } from './UiGrid';
6
- import type { GridOptions, UiGridApi, GridExpandableTemplateContext } from '@ornery/ui-grid-core';
6
+ import type {
7
+ GridHeaderTemplateContext,
8
+ GridOptions,
9
+ UiGridApi,
10
+ GridExpandableTemplateContext,
11
+ } from '@ornery/ui-grid-core';
7
12
  import { SORT_DIRECTIONS, FILTER_CONDITIONS } from '@ornery/ui-grid-core';
8
13
 
9
14
  const baseData = [
@@ -136,6 +141,41 @@ describe('UiGrid React component', () => {
136
141
  );
137
142
  });
138
143
 
144
+ it('renders custom header content from the React headerRenderer prop', () => {
145
+ const headerRenderer = ({ value, column }: GridHeaderTemplateContext) => (
146
+ <span>{`${value}:${column.name}`}</span>
147
+ );
148
+
149
+ const { container } = renderGrid({}, { headerRenderer });
150
+
151
+ const headers = Array.from(container.querySelectorAll('.header-label')).map((el) =>
152
+ el.textContent?.trim(),
153
+ );
154
+
155
+ expect(headers).toEqual([
156
+ 'Customer:name',
157
+ 'Status:status',
158
+ 'Revenue:revenue',
159
+ 'Owner:owner',
160
+ 'Badge:badge',
161
+ ]);
162
+ });
163
+
164
+ it('renders custom header content from column headerRenderer when no React headerRenderer is provided', () => {
165
+ const { container } = renderGrid({
166
+ columnDefs: [
167
+ { name: 'name', displayName: 'Customer', headerRenderer: ({ value }) => `[${value}]` },
168
+ { name: 'status' },
169
+ ],
170
+ });
171
+
172
+ const headers = Array.from(container.querySelectorAll('.header-label')).map((el) =>
173
+ el.textContent?.trim(),
174
+ );
175
+
176
+ expect(headers).toEqual(['[Customer]', 'Status']);
177
+ });
178
+
139
179
  it('sorts rows and cycles sort state from header button', () => {
140
180
  const { container, gridApi } = renderGrid();
141
181