Improve desktop script runs with timestamps & logs
Improve script execution in the desktop app by introducing timestamped filenames and detailed logging. These changes aim to facilitate easier debugging, auditing and overall better user experience. Key changes: - Add timestamps in filenames for temporary files to aid in troubleshooting and auditing. - Add application logging throughout the script execution process to enhance troubleshooting capabilities. Other supporting changes: - Refactor `TemporaryFileCodeRunner` with subfunctions for improved readability, maintenance, reusability and extensibility. - Refactor unit tests for `TemporaryFileCodeRunner` for improved granularity and simplicity. - Create centralized definition of supported operating systems by privacy.sexy to ensure robust and consistent test case creation. - Simplify the `runCode` method by removing the file extension parameter; now handled internally by `FileNameGenerator`.
This commit is contained in:
@@ -3,15 +3,15 @@ import { OperatingSystem } from '@/domain/OperatingSystem';
|
||||
import { getInstructions } from '@/presentation/components/Code/CodeButtons/Save/Instructions/InstructionListDataFactory';
|
||||
import { getEnumValues } from '@/application/Common/Enum';
|
||||
import { InstructionsBuilder } from '@/presentation/components/Code/CodeButtons/Save/Instructions/Data/InstructionsBuilder';
|
||||
import { AllSupportedOperatingSystems } from '@tests/shared/TestCases/SupportedOperatingSystems';
|
||||
|
||||
describe('InstructionListDataFactory', () => {
|
||||
const supportedOsList = [OperatingSystem.macOS, OperatingSystem.Linux];
|
||||
describe('getInstructions', () => {
|
||||
it('returns expected if os is supported', () => {
|
||||
// arrange
|
||||
const fileName = 'test.file';
|
||||
// act
|
||||
const actualResults = supportedOsList.map((os) => getInstructions(os, fileName));
|
||||
const actualResults = AllSupportedOperatingSystems.map((os) => getInstructions(os, fileName));
|
||||
// assert
|
||||
expect(actualResults.every((result) => result instanceof InstructionsBuilder));
|
||||
});
|
||||
@@ -20,7 +20,7 @@ describe('InstructionListDataFactory', () => {
|
||||
const expected = undefined;
|
||||
const fileName = 'test.file';
|
||||
const unsupportedOses = getEnumValues(OperatingSystem)
|
||||
.filter((value) => !supportedOsList.includes(value));
|
||||
.filter((value) => !AllSupportedOperatingSystems.includes(value));
|
||||
// act
|
||||
const actualResults = unsupportedOses.map((os) => getInstructions(os, fileName));
|
||||
// assert
|
||||
|
||||
Reference in New Issue
Block a user