diff --git a/app/customize/components/AdvancedSettingsPanel.type-compiler.test.tsx b/app/customize/components/AdvancedSettingsPanel.type-compiler.test.tsx new file mode 100644 index 000000000..ffd38bf70 --- /dev/null +++ b/app/customize/components/AdvancedSettingsPanel.type-compiler.test.tsx @@ -0,0 +1,74 @@ +import { describe, it, expectTypeOf } from 'vitest'; +import type { ComponentProps } from 'react'; + +import { AdvancedSettingsPanel } from './AdvancedSettingsPanel'; +import type { ViewMode, DeltaFormat, Language, Timezone } from '../types'; +import react from 'react'; + +type Props = ComponentProps; + +describe('AdvancedSettingsPanel Type Compiler Validation', () => { + it('accepts all valid prop types', () => { + expectTypeOf().toEqualTypeOf(); + expectTypeOf().toEqualTypeOf(); + expectTypeOf().toEqualTypeOf(); + + expectTypeOf().toEqualTypeOf(); + expectTypeOf().toEqualTypeOf(); + + expectTypeOf().toEqualTypeOf(); + expectTypeOf().toEqualTypeOf(); + + expectTypeOf().toEqualTypeOf(); + + expectTypeOf().toEqualTypeOf(); + expectTypeOf().toEqualTypeOf(); + }); + + it('validates callback parameter types', () => { + expectTypeOf().parameters.toEqualTypeOf<[boolean]>(); + + expectTypeOf().parameters.toEqualTypeOf<[boolean]>(); + + expectTypeOf().parameters.toEqualTypeOf<[boolean]>(); + + expectTypeOf().parameters.toEqualTypeOf<[ViewMode]>(); + + expectTypeOf().parameters.toEqualTypeOf<[DeltaFormat]>(); + + expectTypeOf().parameters.toEqualTypeOf<[number | '']>(); + + expectTypeOf().parameters.toEqualTypeOf<[number | '']>(); + + expectTypeOf().parameters.toEqualTypeOf<[number]>(); + + expectTypeOf().parameters.toEqualTypeOf<[Language]>(); + + expectTypeOf().parameters.toEqualTypeOf<[Timezone]>(); + }); + + it('returns void from every callback', () => { + expectTypeOf().returns.toEqualTypeOf(); + expectTypeOf().returns.toEqualTypeOf(); + expectTypeOf().returns.toEqualTypeOf(); + expectTypeOf().returns.toEqualTypeOf(); + expectTypeOf().returns.toEqualTypeOf(); + expectTypeOf().returns.toEqualTypeOf(); + expectTypeOf().returns.toEqualTypeOf(); + expectTypeOf().returns.toEqualTypeOf(); + expectTypeOf().returns.toEqualTypeOf(); + expectTypeOf().returns.toEqualTypeOf(); + }); + + it('allows optional empty string dimensions', () => { + expectTypeOf().toMatchTypeOf(); + expectTypeOf().toMatchTypeOf(); + }); + + it('enforces schema constraints for enums', () => { + expectTypeOf().toMatchTypeOf(); + expectTypeOf().toMatchTypeOf(); + expectTypeOf().toMatchTypeOf(); + expectTypeOf().toMatchTypeOf(); + }); +});