h-sphere_sql-seal/src/grammar/parseIntermediateContent.test.ts
2025-02-04 18:26:27 +00:00

95 lines
No EOL
2.5 KiB
TypeScript

import { parseIntermediateContent } from "./parseIntermediateContent"
describe('Parse Intermediate Content', () => {
it('should properly parse content without any flags', () => {
expect(parseIntermediateContent(`
HTML`, {})).toEqual({
renderer: 'HTML',
rendererArguments: '',
flags: {
explain: false,
refresh: true
}
})
})
it('should properly set no refresh', () => {
expect(parseIntermediateContent(`
NO REFRESH
HTML`, {})).toEqual({
renderer: 'HTML',
rendererArguments: '',
flags: {
explain: false,
refresh: false
}
})
})
it('should properly set explain', () => {
expect(parseIntermediateContent(`
EXPLAIN
HTML`, {})).toEqual({
renderer: 'HTML',
rendererArguments: '',
flags: {
explain: true,
refresh: true
}
})
})
it('should properly set both flags', () => {
expect(parseIntermediateContent(`
EXPLAIN
NO REFRESH
HTML`, {})).toEqual({
renderer: 'HTML',
rendererArguments: '',
flags: {
explain: true,
refresh: false
}
})
})
it('should use initial values when calculating', () => {
expect(parseIntermediateContent(`HTML`, {
flags: { explain: true, refresh: false }
})).toEqual({
flags: { explain: true, refresh: false },
renderer: 'HTML',
rendererArguments: ''
})
})
it('should allow for flag modifiers to be used in lower case', () => {
expect(parseIntermediateContent(`
explain
no refresh
grid
`, {})).toEqual({
flags: { explain: true, refresh: false },
renderer: 'GRID',
rendererArguments: ''
})
})
it('should properly parse parameter to the function', () => {
expect(parseIntermediateContent(`
explain
no refresh
grid {
a: 5,
b: 7
}`, {})).toEqual({
flags: { explain: true, refresh: false },
renderer: 'GRID',
rendererArguments: `{
a: 5,
b: 7
}`
})
})
})