mirror of
https://github.com/Dictionarry-Hub/profilarr.git
synced 2026-01-24 11:41:03 +01:00
- improve custom formats - general tab for name, description tags - improved conditions tab - add testing system - add app footer - remove redundant data page headers
52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
import {useState, useCallback} from 'react';
|
|
import {CustomFormats} from '@api/data';
|
|
import Alert from '@ui/Alert';
|
|
|
|
export const useFormatTesting = () => {
|
|
const [isRunningTests, setIsRunningTests] = useState(false);
|
|
|
|
const runTests = useCallback(async (conditions, tests) => {
|
|
if (!conditions?.length || !tests?.length) {
|
|
return tests;
|
|
}
|
|
|
|
setIsRunningTests(true);
|
|
try {
|
|
const result = await CustomFormats.runTests({conditions, tests});
|
|
|
|
if (result.success) {
|
|
// Calculate test statistics
|
|
const totalTests = result.tests.length;
|
|
const passedTests = result.tests.filter(
|
|
test => test.passes
|
|
).length;
|
|
|
|
// Show success message with statistics
|
|
Alert.success(
|
|
`Tests completed: ${passedTests}/${totalTests} passed`,
|
|
{
|
|
autoClose: 3000,
|
|
hideProgressBar: false
|
|
}
|
|
);
|
|
|
|
return result.tests;
|
|
} else {
|
|
Alert.error(result.message || 'Failed to run tests');
|
|
return tests;
|
|
}
|
|
} catch (error) {
|
|
console.error('Error running tests:', error);
|
|
Alert.error('An error occurred while running tests');
|
|
return tests;
|
|
} finally {
|
|
setIsRunningTests(false);
|
|
}
|
|
}, []);
|
|
|
|
return {
|
|
isRunningTests,
|
|
runTests
|
|
};
|
|
};
|