@pdfme/schemas 5.3.8-dev.21 → 5.3.8-dev.23
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/dist/cjs/__tests__/utils.test.js +76 -15
- package/dist/cjs/__tests__/utils.test.js.map +1 -1
- package/dist/esm/__tests__/utils.test.js +65 -4
- package/dist/esm/__tests__/utils.test.js.map +1 -1
- package/dist/node/__tests__/utils.test.js +76 -15
- package/dist/node/__tests__/utils.test.js.map +1 -1
- package/package.json +1 -1
@@ -1,22 +1,22 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
const common_1 = require("@pdfme/common");
|
4
|
-
const
|
4
|
+
const utils_js_1 = require("../src/utils.js");
|
5
5
|
const lucide_1 = require("lucide");
|
6
6
|
describe('hex2RgbColor', () => {
|
7
7
|
it('should convert hex to rgb', () => {
|
8
8
|
const hex = '#000000';
|
9
|
-
const rgbValue = (0,
|
9
|
+
const rgbValue = (0, utils_js_1.hex2RgbColor)(hex);
|
10
10
|
expect(rgbValue).toEqual({ red: 0, green: 0, blue: 0, type: 'RGB' });
|
11
11
|
});
|
12
12
|
it('should convert hex to rgb with a short hex', () => {
|
13
13
|
const hex = '#fff';
|
14
|
-
const rgbValue = (0,
|
14
|
+
const rgbValue = (0, utils_js_1.hex2RgbColor)(hex);
|
15
15
|
expect(rgbValue).toEqual({ red: 1, green: 1, blue: 1, type: 'RGB' });
|
16
16
|
});
|
17
17
|
it('should convert hex to rgb for non-trivial color', () => {
|
18
18
|
const hex = '#33af5a';
|
19
|
-
const rgbValue = (0,
|
19
|
+
const rgbValue = (0, utils_js_1.hex2RgbColor)(hex);
|
20
20
|
expect(rgbValue).toEqual({
|
21
21
|
red: 0.2,
|
22
22
|
green: 0.6862745098039216,
|
@@ -26,7 +26,7 @@ describe('hex2RgbColor', () => {
|
|
26
26
|
});
|
27
27
|
it('should throw an error if hex is invalid', () => {
|
28
28
|
const hex = '#fffee';
|
29
|
-
expect(() => (0,
|
29
|
+
expect(() => (0, utils_js_1.hex2RgbColor)(hex)).toThrowError('Invalid hex color value #ff');
|
30
30
|
});
|
31
31
|
});
|
32
32
|
describe('rotatePoint', () => {
|
@@ -34,7 +34,7 @@ describe('rotatePoint', () => {
|
|
34
34
|
const point = { x: 5, y: 5 };
|
35
35
|
const pivot = { x: 0, y: 0 };
|
36
36
|
const angle = 90;
|
37
|
-
const { x, y } = (0,
|
37
|
+
const { x, y } = (0, utils_js_1.rotatePoint)(point, pivot, angle);
|
38
38
|
expect(x).toEqual(-5);
|
39
39
|
expect(y).toEqual(5);
|
40
40
|
});
|
@@ -42,7 +42,7 @@ describe('rotatePoint', () => {
|
|
42
42
|
const point = { x: 5, y: 5 };
|
43
43
|
const pivot = { x: 0, y: 0 };
|
44
44
|
const angle = 180;
|
45
|
-
const { x, y } = (0,
|
45
|
+
const { x, y } = (0, utils_js_1.rotatePoint)(point, pivot, angle);
|
46
46
|
expect(x).toBeCloseTo(-5);
|
47
47
|
expect(y).toBeCloseTo(-5);
|
48
48
|
});
|
@@ -50,7 +50,7 @@ describe('rotatePoint', () => {
|
|
50
50
|
const point = { x: 10, y: 10 };
|
51
51
|
const pivot = { x: 10, y: 10 };
|
52
52
|
const angle = 221;
|
53
|
-
const { x, y } = (0,
|
53
|
+
const { x, y } = (0, utils_js_1.rotatePoint)(point, pivot, angle);
|
54
54
|
expect(x).toEqual(10);
|
55
55
|
expect(y).toEqual(10);
|
56
56
|
});
|
@@ -58,7 +58,7 @@ describe('rotatePoint', () => {
|
|
58
58
|
const point = { x: 10, y: 10 };
|
59
59
|
const pivot = { x: 5, y: 5 };
|
60
60
|
const angle = 45;
|
61
|
-
const { x, y } = (0,
|
61
|
+
const { x, y } = (0, utils_js_1.rotatePoint)(point, pivot, angle);
|
62
62
|
expect(x).toBeCloseTo(5);
|
63
63
|
expect(y).toBeCloseTo(12.07);
|
64
64
|
});
|
@@ -76,7 +76,7 @@ describe('convertForPdfLayoutProps', () => {
|
|
76
76
|
opacity: 1,
|
77
77
|
};
|
78
78
|
const pageHeight = 1000;
|
79
|
-
const { position: { x, y }, height, width, rotate, opacity, } = (0,
|
79
|
+
const { position: { x, y }, height, width, rotate, opacity, } = (0, utils_js_1.convertForPdfLayoutProps)({ schema, pageHeight });
|
80
80
|
expect(opacity).toEqual(schema.opacity);
|
81
81
|
expect(height).toEqual((0, common_1.mm2pt)(schema.height));
|
82
82
|
expect(width).toEqual((0, common_1.mm2pt)(schema.width));
|
@@ -96,7 +96,7 @@ describe('convertForPdfLayoutProps', () => {
|
|
96
96
|
opacity: 1,
|
97
97
|
};
|
98
98
|
const pageHeight = 1000;
|
99
|
-
const { position: { x, y }, height, width, rotate, opacity, } = (0,
|
99
|
+
const { position: { x, y }, height, width, rotate, opacity, } = (0, utils_js_1.convertForPdfLayoutProps)({ schema, pageHeight });
|
100
100
|
expect(opacity).toBeCloseTo(1);
|
101
101
|
expect((0, common_1.pt2mm)(width)).toBeCloseTo(50);
|
102
102
|
expect((0, common_1.pt2mm)(height)).toBeCloseTo(120.005);
|
@@ -116,7 +116,7 @@ describe('convertForPdfLayoutProps', () => {
|
|
116
116
|
opacity: 1,
|
117
117
|
};
|
118
118
|
const pageHeight = 1000;
|
119
|
-
const { position: { x, y }, height, width, rotate, opacity, } = (0,
|
119
|
+
const { position: { x, y }, height, width, rotate, opacity, } = (0, utils_js_1.convertForPdfLayoutProps)({ schema, pageHeight, applyRotateTranslate: false });
|
120
120
|
expect(opacity).toBeCloseTo(1);
|
121
121
|
expect((0, common_1.pt2mm)(width)).toBeCloseTo(50);
|
122
122
|
expect((0, common_1.pt2mm)(height)).toBeCloseTo(120.005);
|
@@ -125,8 +125,69 @@ describe('convertForPdfLayoutProps', () => {
|
|
125
125
|
expect(rotate).toEqual({ angle: -90, type: 'degrees' });
|
126
126
|
});
|
127
127
|
});
|
128
|
-
|
129
|
-
|
130
|
-
|
128
|
+
describe('createSvgStr', () => {
|
129
|
+
it('should convert a Lucide icon to SVG string', () => {
|
130
|
+
const icon = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck, { stroke: 'currentColor' });
|
131
|
+
expect(icon).toBeTruthy();
|
132
|
+
expect(icon).toContain('<svg');
|
133
|
+
expect(icon).toContain('stroke="currentColor"');
|
134
|
+
expect(icon).toContain('</svg>');
|
135
|
+
});
|
136
|
+
it('should merge custom attributes with SVG element', () => {
|
137
|
+
const icon = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck, {
|
138
|
+
stroke: 'red',
|
139
|
+
fill: 'blue',
|
140
|
+
width: '24',
|
141
|
+
height: '24'
|
142
|
+
});
|
143
|
+
expect(icon).toContain('stroke="red"');
|
144
|
+
expect(icon).toContain('fill="blue"');
|
145
|
+
expect(icon).toContain('width="24"');
|
146
|
+
expect(icon).toContain('height="24"');
|
147
|
+
});
|
148
|
+
it('should handle custom attributes overriding default ones', () => {
|
149
|
+
// SquareCheck likely has default stroke attribute
|
150
|
+
const defaultIcon = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck);
|
151
|
+
const customIcon = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck, { stroke: 'purple' });
|
152
|
+
expect(customIcon).toContain('stroke="purple"');
|
153
|
+
// The custom stroke should replace the default one
|
154
|
+
expect(customIcon).not.toBe(defaultIcon);
|
155
|
+
});
|
156
|
+
it('should handle different icons', () => {
|
157
|
+
// Test with a different icon from lucide
|
158
|
+
const icon1 = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck);
|
159
|
+
expect(icon1).toBeTruthy();
|
160
|
+
expect(icon1).toContain('<svg');
|
161
|
+
expect(icon1).toContain('</svg>');
|
162
|
+
});
|
163
|
+
it('should produce valid SVG output', () => {
|
164
|
+
const svgStr = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck);
|
165
|
+
// Check that the output is a valid SVG string
|
166
|
+
expect(svgStr).toContain('<svg');
|
167
|
+
expect(svgStr).toContain('</svg>');
|
168
|
+
// Check that attributes are properly formatted
|
169
|
+
expect(svgStr.includes('="')).toBeTruthy();
|
170
|
+
// Check that tags are properly closed
|
171
|
+
const openTags = svgStr.match(/<[^/][^>]*>/g) || [];
|
172
|
+
const closeTags = svgStr.match(/<\/[^>]+>/g) || [];
|
173
|
+
expect(openTags.length).toBeGreaterThan(0);
|
174
|
+
expect(closeTags.length).toBeGreaterThan(0);
|
175
|
+
});
|
176
|
+
it('should handle multiple custom attributes', () => {
|
177
|
+
const customAttrs = {
|
178
|
+
width: '48',
|
179
|
+
height: '48',
|
180
|
+
fill: 'none',
|
181
|
+
stroke: 'blue',
|
182
|
+
'stroke-width': '1.5',
|
183
|
+
'stroke-linecap': 'round',
|
184
|
+
'stroke-linejoin': 'round'
|
185
|
+
};
|
186
|
+
const svgStr = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck, customAttrs);
|
187
|
+
// Check that all custom attributes are included
|
188
|
+
Object.entries(customAttrs).forEach(([key, value]) => {
|
189
|
+
expect(svgStr).toContain(`${key}="${value}"`);
|
190
|
+
});
|
191
|
+
});
|
131
192
|
});
|
132
193
|
//# sourceMappingURL=utils.test.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../__tests__/utils.test.ts"],"names":[],"mappings":";;AAAA,0CAAqD;AACrD,
|
1
|
+
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../__tests__/utils.test.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { mm2pt, pt2mm } from '@pdfme/common';
|
2
|
-
import { convertForPdfLayoutProps, rotatePoint, hex2RgbColor, createSvgStr } from '../src/utils';
|
2
|
+
import { convertForPdfLayoutProps, rotatePoint, hex2RgbColor, createSvgStr } from '../src/utils.js';
|
3
3
|
import { SquareCheck } from 'lucide';
|
4
4
|
describe('hex2RgbColor', () => {
|
5
5
|
it('should convert hex to rgb', () => {
|
@@ -123,8 +123,69 @@ describe('convertForPdfLayoutProps', () => {
|
|
123
123
|
expect(rotate).toEqual({ angle: -90, type: 'degrees' });
|
124
124
|
});
|
125
125
|
});
|
126
|
-
|
127
|
-
|
128
|
-
|
126
|
+
describe('createSvgStr', () => {
|
127
|
+
it('should convert a Lucide icon to SVG string', () => {
|
128
|
+
const icon = createSvgStr(SquareCheck, { stroke: 'currentColor' });
|
129
|
+
expect(icon).toBeTruthy();
|
130
|
+
expect(icon).toContain('<svg');
|
131
|
+
expect(icon).toContain('stroke="currentColor"');
|
132
|
+
expect(icon).toContain('</svg>');
|
133
|
+
});
|
134
|
+
it('should merge custom attributes with SVG element', () => {
|
135
|
+
const icon = createSvgStr(SquareCheck, {
|
136
|
+
stroke: 'red',
|
137
|
+
fill: 'blue',
|
138
|
+
width: '24',
|
139
|
+
height: '24'
|
140
|
+
});
|
141
|
+
expect(icon).toContain('stroke="red"');
|
142
|
+
expect(icon).toContain('fill="blue"');
|
143
|
+
expect(icon).toContain('width="24"');
|
144
|
+
expect(icon).toContain('height="24"');
|
145
|
+
});
|
146
|
+
it('should handle custom attributes overriding default ones', () => {
|
147
|
+
// SquareCheck likely has default stroke attribute
|
148
|
+
const defaultIcon = createSvgStr(SquareCheck);
|
149
|
+
const customIcon = createSvgStr(SquareCheck, { stroke: 'purple' });
|
150
|
+
expect(customIcon).toContain('stroke="purple"');
|
151
|
+
// The custom stroke should replace the default one
|
152
|
+
expect(customIcon).not.toBe(defaultIcon);
|
153
|
+
});
|
154
|
+
it('should handle different icons', () => {
|
155
|
+
// Test with a different icon from lucide
|
156
|
+
const icon1 = createSvgStr(SquareCheck);
|
157
|
+
expect(icon1).toBeTruthy();
|
158
|
+
expect(icon1).toContain('<svg');
|
159
|
+
expect(icon1).toContain('</svg>');
|
160
|
+
});
|
161
|
+
it('should produce valid SVG output', () => {
|
162
|
+
const svgStr = createSvgStr(SquareCheck);
|
163
|
+
// Check that the output is a valid SVG string
|
164
|
+
expect(svgStr).toContain('<svg');
|
165
|
+
expect(svgStr).toContain('</svg>');
|
166
|
+
// Check that attributes are properly formatted
|
167
|
+
expect(svgStr.includes('="')).toBeTruthy();
|
168
|
+
// Check that tags are properly closed
|
169
|
+
const openTags = svgStr.match(/<[^/][^>]*>/g) || [];
|
170
|
+
const closeTags = svgStr.match(/<\/[^>]+>/g) || [];
|
171
|
+
expect(openTags.length).toBeGreaterThan(0);
|
172
|
+
expect(closeTags.length).toBeGreaterThan(0);
|
173
|
+
});
|
174
|
+
it('should handle multiple custom attributes', () => {
|
175
|
+
const customAttrs = {
|
176
|
+
width: '48',
|
177
|
+
height: '48',
|
178
|
+
fill: 'none',
|
179
|
+
stroke: 'blue',
|
180
|
+
'stroke-width': '1.5',
|
181
|
+
'stroke-linecap': 'round',
|
182
|
+
'stroke-linejoin': 'round'
|
183
|
+
};
|
184
|
+
const svgStr = createSvgStr(SquareCheck, customAttrs);
|
185
|
+
// Check that all custom attributes are included
|
186
|
+
Object.entries(customAttrs).forEach(([key, value]) => {
|
187
|
+
expect(svgStr).toContain(`${key}="${value}"`);
|
188
|
+
});
|
189
|
+
});
|
129
190
|
});
|
130
191
|
//# sourceMappingURL=utils.test.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../__tests__/utils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../__tests__/utils.test.ts"],"names":[],"mappings":"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"}
|
@@ -1,22 +1,22 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
const common_1 = require("@pdfme/common");
|
4
|
-
const
|
4
|
+
const utils_js_1 = require("../src/utils.js");
|
5
5
|
const lucide_1 = require("lucide");
|
6
6
|
describe('hex2RgbColor', () => {
|
7
7
|
it('should convert hex to rgb', () => {
|
8
8
|
const hex = '#000000';
|
9
|
-
const rgbValue = (0,
|
9
|
+
const rgbValue = (0, utils_js_1.hex2RgbColor)(hex);
|
10
10
|
expect(rgbValue).toEqual({ red: 0, green: 0, blue: 0, type: 'RGB' });
|
11
11
|
});
|
12
12
|
it('should convert hex to rgb with a short hex', () => {
|
13
13
|
const hex = '#fff';
|
14
|
-
const rgbValue = (0,
|
14
|
+
const rgbValue = (0, utils_js_1.hex2RgbColor)(hex);
|
15
15
|
expect(rgbValue).toEqual({ red: 1, green: 1, blue: 1, type: 'RGB' });
|
16
16
|
});
|
17
17
|
it('should convert hex to rgb for non-trivial color', () => {
|
18
18
|
const hex = '#33af5a';
|
19
|
-
const rgbValue = (0,
|
19
|
+
const rgbValue = (0, utils_js_1.hex2RgbColor)(hex);
|
20
20
|
expect(rgbValue).toEqual({
|
21
21
|
red: 0.2,
|
22
22
|
green: 0.6862745098039216,
|
@@ -26,7 +26,7 @@ describe('hex2RgbColor', () => {
|
|
26
26
|
});
|
27
27
|
it('should throw an error if hex is invalid', () => {
|
28
28
|
const hex = '#fffee';
|
29
|
-
expect(() => (0,
|
29
|
+
expect(() => (0, utils_js_1.hex2RgbColor)(hex)).toThrowError('Invalid hex color value #ff');
|
30
30
|
});
|
31
31
|
});
|
32
32
|
describe('rotatePoint', () => {
|
@@ -34,7 +34,7 @@ describe('rotatePoint', () => {
|
|
34
34
|
const point = { x: 5, y: 5 };
|
35
35
|
const pivot = { x: 0, y: 0 };
|
36
36
|
const angle = 90;
|
37
|
-
const { x, y } = (0,
|
37
|
+
const { x, y } = (0, utils_js_1.rotatePoint)(point, pivot, angle);
|
38
38
|
expect(x).toEqual(-5);
|
39
39
|
expect(y).toEqual(5);
|
40
40
|
});
|
@@ -42,7 +42,7 @@ describe('rotatePoint', () => {
|
|
42
42
|
const point = { x: 5, y: 5 };
|
43
43
|
const pivot = { x: 0, y: 0 };
|
44
44
|
const angle = 180;
|
45
|
-
const { x, y } = (0,
|
45
|
+
const { x, y } = (0, utils_js_1.rotatePoint)(point, pivot, angle);
|
46
46
|
expect(x).toBeCloseTo(-5);
|
47
47
|
expect(y).toBeCloseTo(-5);
|
48
48
|
});
|
@@ -50,7 +50,7 @@ describe('rotatePoint', () => {
|
|
50
50
|
const point = { x: 10, y: 10 };
|
51
51
|
const pivot = { x: 10, y: 10 };
|
52
52
|
const angle = 221;
|
53
|
-
const { x, y } = (0,
|
53
|
+
const { x, y } = (0, utils_js_1.rotatePoint)(point, pivot, angle);
|
54
54
|
expect(x).toEqual(10);
|
55
55
|
expect(y).toEqual(10);
|
56
56
|
});
|
@@ -58,7 +58,7 @@ describe('rotatePoint', () => {
|
|
58
58
|
const point = { x: 10, y: 10 };
|
59
59
|
const pivot = { x: 5, y: 5 };
|
60
60
|
const angle = 45;
|
61
|
-
const { x, y } = (0,
|
61
|
+
const { x, y } = (0, utils_js_1.rotatePoint)(point, pivot, angle);
|
62
62
|
expect(x).toBeCloseTo(5);
|
63
63
|
expect(y).toBeCloseTo(12.07);
|
64
64
|
});
|
@@ -76,7 +76,7 @@ describe('convertForPdfLayoutProps', () => {
|
|
76
76
|
opacity: 1,
|
77
77
|
};
|
78
78
|
const pageHeight = 1000;
|
79
|
-
const { position: { x, y }, height, width, rotate, opacity, } = (0,
|
79
|
+
const { position: { x, y }, height, width, rotate, opacity, } = (0, utils_js_1.convertForPdfLayoutProps)({ schema, pageHeight });
|
80
80
|
expect(opacity).toEqual(schema.opacity);
|
81
81
|
expect(height).toEqual((0, common_1.mm2pt)(schema.height));
|
82
82
|
expect(width).toEqual((0, common_1.mm2pt)(schema.width));
|
@@ -96,7 +96,7 @@ describe('convertForPdfLayoutProps', () => {
|
|
96
96
|
opacity: 1,
|
97
97
|
};
|
98
98
|
const pageHeight = 1000;
|
99
|
-
const { position: { x, y }, height, width, rotate, opacity, } = (0,
|
99
|
+
const { position: { x, y }, height, width, rotate, opacity, } = (0, utils_js_1.convertForPdfLayoutProps)({ schema, pageHeight });
|
100
100
|
expect(opacity).toBeCloseTo(1);
|
101
101
|
expect((0, common_1.pt2mm)(width)).toBeCloseTo(50);
|
102
102
|
expect((0, common_1.pt2mm)(height)).toBeCloseTo(120.005);
|
@@ -116,7 +116,7 @@ describe('convertForPdfLayoutProps', () => {
|
|
116
116
|
opacity: 1,
|
117
117
|
};
|
118
118
|
const pageHeight = 1000;
|
119
|
-
const { position: { x, y }, height, width, rotate, opacity, } = (0,
|
119
|
+
const { position: { x, y }, height, width, rotate, opacity, } = (0, utils_js_1.convertForPdfLayoutProps)({ schema, pageHeight, applyRotateTranslate: false });
|
120
120
|
expect(opacity).toBeCloseTo(1);
|
121
121
|
expect((0, common_1.pt2mm)(width)).toBeCloseTo(50);
|
122
122
|
expect((0, common_1.pt2mm)(height)).toBeCloseTo(120.005);
|
@@ -125,8 +125,69 @@ describe('convertForPdfLayoutProps', () => {
|
|
125
125
|
expect(rotate).toEqual({ angle: -90, type: 'degrees' });
|
126
126
|
});
|
127
127
|
});
|
128
|
-
|
129
|
-
|
130
|
-
|
128
|
+
describe('createSvgStr', () => {
|
129
|
+
it('should convert a Lucide icon to SVG string', () => {
|
130
|
+
const icon = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck, { stroke: 'currentColor' });
|
131
|
+
expect(icon).toBeTruthy();
|
132
|
+
expect(icon).toContain('<svg');
|
133
|
+
expect(icon).toContain('stroke="currentColor"');
|
134
|
+
expect(icon).toContain('</svg>');
|
135
|
+
});
|
136
|
+
it('should merge custom attributes with SVG element', () => {
|
137
|
+
const icon = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck, {
|
138
|
+
stroke: 'red',
|
139
|
+
fill: 'blue',
|
140
|
+
width: '24',
|
141
|
+
height: '24'
|
142
|
+
});
|
143
|
+
expect(icon).toContain('stroke="red"');
|
144
|
+
expect(icon).toContain('fill="blue"');
|
145
|
+
expect(icon).toContain('width="24"');
|
146
|
+
expect(icon).toContain('height="24"');
|
147
|
+
});
|
148
|
+
it('should handle custom attributes overriding default ones', () => {
|
149
|
+
// SquareCheck likely has default stroke attribute
|
150
|
+
const defaultIcon = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck);
|
151
|
+
const customIcon = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck, { stroke: 'purple' });
|
152
|
+
expect(customIcon).toContain('stroke="purple"');
|
153
|
+
// The custom stroke should replace the default one
|
154
|
+
expect(customIcon).not.toBe(defaultIcon);
|
155
|
+
});
|
156
|
+
it('should handle different icons', () => {
|
157
|
+
// Test with a different icon from lucide
|
158
|
+
const icon1 = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck);
|
159
|
+
expect(icon1).toBeTruthy();
|
160
|
+
expect(icon1).toContain('<svg');
|
161
|
+
expect(icon1).toContain('</svg>');
|
162
|
+
});
|
163
|
+
it('should produce valid SVG output', () => {
|
164
|
+
const svgStr = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck);
|
165
|
+
// Check that the output is a valid SVG string
|
166
|
+
expect(svgStr).toContain('<svg');
|
167
|
+
expect(svgStr).toContain('</svg>');
|
168
|
+
// Check that attributes are properly formatted
|
169
|
+
expect(svgStr.includes('="')).toBeTruthy();
|
170
|
+
// Check that tags are properly closed
|
171
|
+
const openTags = svgStr.match(/<[^/][^>]*>/g) || [];
|
172
|
+
const closeTags = svgStr.match(/<\/[^>]+>/g) || [];
|
173
|
+
expect(openTags.length).toBeGreaterThan(0);
|
174
|
+
expect(closeTags.length).toBeGreaterThan(0);
|
175
|
+
});
|
176
|
+
it('should handle multiple custom attributes', () => {
|
177
|
+
const customAttrs = {
|
178
|
+
width: '48',
|
179
|
+
height: '48',
|
180
|
+
fill: 'none',
|
181
|
+
stroke: 'blue',
|
182
|
+
'stroke-width': '1.5',
|
183
|
+
'stroke-linecap': 'round',
|
184
|
+
'stroke-linejoin': 'round'
|
185
|
+
};
|
186
|
+
const svgStr = (0, utils_js_1.createSvgStr)(lucide_1.SquareCheck, customAttrs);
|
187
|
+
// Check that all custom attributes are included
|
188
|
+
Object.entries(customAttrs).forEach(([key, value]) => {
|
189
|
+
expect(svgStr).toContain(`${key}="${value}"`);
|
190
|
+
});
|
191
|
+
});
|
131
192
|
});
|
132
193
|
//# sourceMappingURL=utils.test.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../__tests__/utils.test.ts"],"names":[],"mappings":";;AAAA,0CAAqD;AACrD,
|
1
|
+
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../__tests__/utils.test.ts"],"names":[],"mappings":"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"}
|