Files
formipay/node_modules/comment-parser/tests/unit/transforms-indent.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

96 lines
2.4 KiB
TypeScript

import indent from '../../src/transforms/indent.js';
import getParser from '../../src/parser/index.js';
import getStringifier from '../../src/stringifier/index.js';
test('push', () => {
const source = `
/**
* Description may go
* over multiple lines followed by @tags
*
* @my-tag {my.type} my-name description line 1
description line 2
* description line 3
*/`;
const expected = `
/**
* Description may go
* over multiple lines followed by @tags
*
* @my-tag {my.type} my-name description line 1
description line 2
* description line 3
*/`;
const parsed = getParser()(source);
const out = getStringifier()(indent(4)(parsed[0]));
expect(out).toBe(expected.slice(1));
});
test('pull', () => {
const source = `
/**
* Description may go
* over multiple lines followed by @tags
*
* @my-tag {my.type} my-name description line 1
description line 2
* description line 3
*/`;
const expected = `
/**
* Description may go
* over multiple lines followed by @tags
*
* @my-tag {my.type} my-name description line 1
description line 2
* description line 3
*/`;
const parsed = getParser()(source);
const out = getStringifier()(indent(2)(parsed[0]));
expect(out).toBe(expected.slice(1));
});
test('force pull', () => {
const source = `
/**
* Description may go
* over multiple lines followed by @tags
*
* @my-tag {my.type} my-name description line 1
description line 2
* description line 3
*/`;
const expected = `
/**
* Description may go
* over multiple lines followed by @tags
*
* @my-tag {my.type} my-name description line 1
description line 2
* description line 3
*/`;
const parsed = getParser()(source);
const indented = indent(0)(parsed[0]);
const out = getStringifier()(indented);
expect(out).toBe(expected.slice(1));
});
test('spec source referencing', () => {
const parsed = getParser()(`/** @tag {type} name Description */`);
const block = indent(0)(parsed[0]);
expect(block.tags[0].source[0] === block.source[0]).toBe(true);
});
test('block source clonning', () => {
const parsed = getParser()(`/** @tag {type} name Description */`);
const block = indent(0)(parsed[0]);
parsed[0].source[0].tokens.description = 'test';
expect(block.source[0].tokens.description).toBe('Description ');
});