Neaten testing

This commit is contained in:
James 2025-08-07 10:40:15 +01:00
parent 274b545fe4
commit 6ac0994adf

View File

@ -2,18 +2,20 @@ import { describe, expect, test } from 'vitest';
import { renderHook, act } from '@testing-library/react'; import { renderHook, act } from '@testing-library/react';
import { useSanitizeParameters } from './useSanitizeParameters'; import { useSanitizeParameters } from './useSanitizeParameters';
const defaultParameters = {
removeJavaScript: true,
removeEmbeddedFiles: true,
removeXMPMetadata: false,
removeMetadata: false,
removeLinks: false,
removeFonts: false,
}
describe('useSanitizeParameters', () => { describe('useSanitizeParameters', () => {
test('should initialize with default parameters', () => { test('should initialize with default parameters', () => {
const { result } = renderHook(() => useSanitizeParameters()); const { result } = renderHook(() => useSanitizeParameters());
expect(result.current.parameters).toEqual({ expect(result.current.parameters).toStrictEqual(defaultParameters);
removeJavaScript: true,
removeEmbeddedFiles: true,
removeXMPMetadata: false,
removeMetadata: false,
removeLinks: false,
removeFonts: false,
});
}); });
test('should update individual parameters', () => { test('should update individual parameters', () => {
@ -23,9 +25,10 @@ describe('useSanitizeParameters', () => {
result.current.updateParameter('removeXMPMetadata', true); result.current.updateParameter('removeXMPMetadata', true);
}); });
expect(result.current.parameters.removeXMPMetadata).toBe(true); expect(result.current.parameters).toStrictEqual({
expect(result.current.parameters.removeJavaScript).toBe(true); // Other params unchanged ...defaultParameters, // Other params unchanged
expect(result.current.parameters.removeLinks).toBe(false); // Other params unchanged removeXMPMetadata: true,
});
}); });
test('should reset parameters to defaults', () => { test('should reset parameters to defaults', () => {
@ -45,14 +48,7 @@ describe('useSanitizeParameters', () => {
result.current.resetParameters(); result.current.resetParameters();
}); });
expect(result.current.parameters).toEqual({ expect(result.current.parameters).toStrictEqual(defaultParameters);
removeJavaScript: true,
removeEmbeddedFiles: true,
removeXMPMetadata: false,
removeMetadata: false,
removeLinks: false,
removeFonts: false,
});
}); });
test('should return correct endpoint name', () => { test('should return correct endpoint name', () => {
@ -86,14 +82,7 @@ describe('useSanitizeParameters', () => {
test('should handle all parameter types correctly', () => { test('should handle all parameter types correctly', () => {
const { result } = renderHook(() => useSanitizeParameters()); const { result } = renderHook(() => useSanitizeParameters());
const allParameters = [ const allParameters = Object.keys(defaultParameters) as (keyof typeof defaultParameters)[];
'removeJavaScript',
'removeEmbeddedFiles',
'removeXMPMetadata',
'removeMetadata',
'removeLinks',
'removeFonts'
] as const;
allParameters.forEach(param => { allParameters.forEach(param => {
act(() => { act(() => {