mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-11-12 08:41:34 +00:00
35 lines
1.4 KiB
TypeScript
35 lines
1.4 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { javaRenameProvider } from '../../src/core/ingestion/languages/java/rename.js';
|
|
import { dartRenameProvider } from '../../src/core/ingestion/languages/dart/rename.js';
|
|
|
|
const validateJavaName = javaRenameProvider.validateName;
|
|
const validateDartName = dartRenameProvider.validateName;
|
|
if (!validateJavaName || !validateDartName) throw new Error('Missing identifier validator');
|
|
|
|
describe('managed provider replacement identifiers', () => {
|
|
it.each(['_', String.raw`\u005f`, String.raw`\uu005F`])(
|
|
'rejects the reserved Java underscore spelling %s',
|
|
(name) => {
|
|
expect(validateJavaName(name)).toMatchObject({ code: 'invalid_name' });
|
|
},
|
|
);
|
|
|
|
it.each(['_measure', 'measure_', '__', String.raw`\u005fmeasure`])(
|
|
'allows an underscore within the longer Java identifier %s',
|
|
(name) => {
|
|
expect(validateJavaName(name)).toBeUndefined();
|
|
},
|
|
);
|
|
|
|
// Dart's built-in identifiers are restricted by declaration kind, not lexically reserved.
|
|
it.each(['abstract', 'import', 'dynamic', 'Function', 'type', 'get', 'set'])(
|
|
'keeps the Dart built-in identifier %s available for member names',
|
|
(name) => {
|
|
expect(validateDartName(name)).toBeUndefined();
|
|
},
|
|
);
|
|
|
|
it.each(['class', 'return', 'void', 'new'])('rejects the Dart reserved word %s', (name) => {
|
|
expect(validateDartName(name)).toMatchObject({ code: 'invalid_name' });
|
|
});
|
|
});
|