Files
formipay/node_modules/comment-parser/tests/unit/util-rewire.spec.ts
dwindown e8fbfb14c1 fix: prevent asset conflicts between React and Grid.js versions
Add coexistence checks to all enqueue methods to prevent loading
both React and Grid.js assets simultaneously.

Changes:
- ReactAdmin.php: Only enqueue React assets when ?react=1
- Init.php: Skip Grid.js when React active on admin pages
- Form.php, Coupon.php, Access.php: Restore classic assets when ?react=0
- Customer.php, Product.php, License.php: Add coexistence checks

Now the toggle between Classic and React versions works correctly.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-18 17:02:14 +07:00

108 lines
2.7 KiB
TypeScript

import { seedTokens, rewireSource, rewireSpecs } from '../../src/util.js';
test('source to spec', () => {
const block = {
description: '',
tags: [
{
tag: 'my-tag',
name: '',
type: '',
optional: false,
description: '',
problems: [],
source: [
{
number: 2,
source: '...changed in spec...',
tokens: seedTokens({ name: '...changed in spec...' }),
},
],
},
],
source: [
{
number: 1,
source: 'source line 1',
tokens: seedTokens(),
},
{
number: 2,
source: 'source line 2',
tokens: seedTokens({ name: 'source' }),
},
],
problems: [],
};
// source is unsynced
expect(block.source[1] === block.tags[0].source[0]).toBe(false);
rewireSource(block);
// source is referenced
expect(block.source[1] === block.tags[0].source[0]).toBe(true);
// non-tag line stays unchanged
expect(block.source[0].source).toEqual('source line 1');
// tag-holding source line stays unchanged
expect(block.source[1].source).toEqual('source line 2');
expect(block.source[1].tokens.name).toEqual('source');
// tag source inherits block source
expect(block.tags[0].source[0].source).toEqual('source line 2');
expect(block.tags[0].source[0].tokens.name).toEqual('source');
});
test('spec to source', () => {
const block = {
description: '',
tags: [
{
tag: 'my-tag',
name: '',
type: '',
optional: false,
description: '',
problems: [],
source: [
{
number: 2,
source: '...changed in spec...',
tokens: seedTokens({ name: '...changed in spec...' }),
},
],
},
],
source: [
{
number: 1,
source: 'source line 1',
tokens: seedTokens(),
},
{
number: 2,
source: 'source line 2',
tokens: seedTokens({ name: 'source' }),
},
],
problems: [],
};
// source is unsynced
expect(block.source[1] === block.tags[0].source[0]).toBe(false);
rewireSpecs(block);
// source is referenced
expect(block.source[1] === block.tags[0].source[0]).toBe(true);
// non-tag line stays unchanged
expect(block.source[0].source).toEqual('source line 1');
// tag-holding source line inherits spec source
expect(block.source[1].source).toEqual('...changed in spec...');
expect(block.source[1].tokens.name).toEqual('...changed in spec...');
// tag source inherits block source
expect(block.tags[0].source[0].source).toEqual('...changed in spec...');
expect(block.tags[0].source[0].tokens.name).toEqual('...changed in spec...');
});