Add specific empty function name compiler error
This commit adds checks to rjeect functions with empty or whitespace names. The compiler throws a specific errror when it encounters a function data object lacking a proper name. This provides early detection and clear feedback on invalid function definitions, helping in faster debugging and ensuring script integrity in the compilation process. The enhancement aims to provide early detection and clear feedback on invalid function definitions, aiding in faster debugging and ensuring script integrity in the compilation process. when it encounters a function data object lacking a proper name. It covers scenarios where the function name might be an empty string, undefined, or solely consist of whitespace.
This commit is contained in:
@@ -26,6 +26,27 @@ describe('SharedFunctionsParser', () => {
|
||||
});
|
||||
describe('parseFunctions', () => {
|
||||
describe('validates functions', () => {
|
||||
it('throws when functions have no names', () => {
|
||||
// arrange
|
||||
const invalidFunctions = [
|
||||
createFunctionDataWithCode()
|
||||
.withCode('test function 1')
|
||||
.withName(' '), // Whitespace,
|
||||
createFunctionDataWithCode()
|
||||
.withCode('test function 2')
|
||||
.withName(undefined as unknown as string), // Undefined
|
||||
createFunctionDataWithCode()
|
||||
.withCode('test function 3')
|
||||
.withName(''), // Empty
|
||||
];
|
||||
const expectedError = `Some function(s) have no names:\n${invalidFunctions.map((f) => JSON.stringify(f)).join('\n')}`;
|
||||
// act
|
||||
const act = () => new ParseFunctionsCallerWithDefaults()
|
||||
.withFunctions(invalidFunctions)
|
||||
.parseFunctions();
|
||||
// assert
|
||||
expect(act).to.throw(expectedError);
|
||||
});
|
||||
it('throws when functions have same names', () => {
|
||||
// arrange
|
||||
const name = 'same-func-name';
|
||||
|
||||
Reference in New Issue
Block a user