Skip to content

Commit

Permalink
🧪 Adds tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mixn committed Dec 9, 2024
1 parent 84d9cc5 commit 68d8f4e
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 0 deletions.
1 change: 1 addition & 0 deletions cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ if (flags.interactive) {
if (!flags.config) {
// TODO: Change `savePreset` in a way that is leverages internal `settings`
await PresetHandler.savePreset(
// TODO: Naming here is quite confusing, rename to `presetName` or similar
PresetHandler.getSettings.preset,
PresetHandler.getSettings,
);
Expand Down
1 change: 1 addition & 0 deletions src/types/cli/global.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ interface CarbonCLIPresetInterface {
exportSize: '1x' | '2x' | '4x';
type: CarbonCLIDownloadType;
code?: string;
// TODO: Better typing for languages based on extensions-map.helper.ts
language?: string;
titleBar?: string;
preset?: string;
Expand Down
44 changes: 44 additions & 0 deletions test/modules/preset-handler.module.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import {
DUMMY_CONFIG,
} from '../helpers/constants.helper.js';
import presetMissingView from '../../src/views/preset-missing.view.js';
import defaultSettings from '../../src/config/cli/default-settings.config.js';

const DUMMY_PRESET_NAME_1 = 'dummy-preset';
const DUMMY_PRESET_NAME_2 = 'appended-dummy-preset';
Expand Down Expand Up @@ -152,4 +153,47 @@ describe('PresetHandlerModule', () => {
type: 'png',
});
});

it('should correctly handle settings', async () => {
const PresetHandler = await new PresetHandlerModule(DUMMY_CONFIG);
const presetSettings = await PresetHandler.getPreset(DUMMY_PRESET_NAME_1);
const autoAppliedSettings = {
language: 'rust',
titleBar: 'main.rs',
};
const startFlagSettings = {
firstLineNumber: 1,
};
const configJsonFlagSettings = JSON.stringify({
theme: 'nord',
titleBar: 'updated-title.rs',
});
const parsedConfigJsonFlagSettings = JSON.parse(configJsonFlagSettings);
expect(PresetHandler.getSettings).toEqual(defaultSettings);
PresetHandler.mergeSettings(autoAppliedSettings);
expect(PresetHandler.getSettings).toEqual({
...defaultSettings,
...autoAppliedSettings,
});
PresetHandler.mergeSettings(presetSettings);
expect(PresetHandler.getSettings).toEqual({
...defaultSettings,
...autoAppliedSettings,
...presetSettings,
});
PresetHandler.mergeSettings(startFlagSettings);
expect(PresetHandler.getSettings).toEqual({
...defaultSettings,
...autoAppliedSettings,
...presetSettings,
...startFlagSettings,
});
PresetHandler.mergeSettings(parsedConfigJsonFlagSettings);
expect(PresetHandler.getSettings).toEqual({
...defaultSettings,
...autoAppliedSettings,
...presetSettings,
...parsedConfigJsonFlagSettings,
});
});
});

0 comments on commit 68d8f4e

Please sign in to comment.