chore: Refactor node parameter assignment logic out of NodeSettings (no-changelog) (#16665)

This commit is contained in:
Charlie Kolb
2025-06-26 15:03:33 +02:00
committed by GitHub
parent 4d211a0794
commit fcf559b93d
7 changed files with 515 additions and 307 deletions

View File

@@ -0,0 +1,69 @@
import { createTestingPinia } from '@pinia/testing';
import { setActivePinia } from 'pinia';
import { useNodeSettingsParameters } from './useNodeSettingsParameters';
describe('useNodeSettingsParameters', () => {
beforeEach(() => {
setActivePinia(createTestingPinia());
});
afterEach(() => {
vi.clearAllMocks();
});
describe('nameIsParameter', () => {
it.each([
['', false],
['parameters', false],
['parameters.', true],
['parameters.path.to.some', true],
['', false],
])('%s should be %s', (input, expected) => {
const { nameIsParameter } = useNodeSettingsParameters();
const result = nameIsParameter({ name: input } as never);
expect(result).toBe(expected);
});
it('should reject path on other input', () => {
const { nameIsParameter } = useNodeSettingsParameters();
const result = nameIsParameter({
name: 'aName',
value: 'parameters.path.to.parameters',
} as never);
expect(result).toBe(false);
});
});
describe('setValue', () => {
it('mutates nodeValues as expected', () => {
const nodeSettingsParameters = useNodeSettingsParameters();
expect(nodeSettingsParameters.nodeValues.value.color).toBe('#ff0000');
expect(nodeSettingsParameters.nodeValues.value.parameters).toEqual({});
nodeSettingsParameters.setValue('color', '#ffffff');
expect(nodeSettingsParameters.nodeValues.value.color).toBe('#ffffff');
expect(nodeSettingsParameters.nodeValues.value.parameters).toEqual({});
nodeSettingsParameters.setValue('parameters.key', 3);
expect(nodeSettingsParameters.nodeValues.value.parameters).toEqual({ key: 3 });
nodeSettingsParameters.nodeValues.value = { parameters: { some: { nested: {} } } };
nodeSettingsParameters.setValue('parameters.some.nested.key', true);
expect(nodeSettingsParameters.nodeValues.value.parameters).toEqual({
some: { nested: { key: true } },
});
nodeSettingsParameters.setValue('parameters', null);
expect(nodeSettingsParameters.nodeValues.value.parameters).toBe(undefined);
nodeSettingsParameters.setValue('newProperty', 'newValue');
expect(nodeSettingsParameters.nodeValues.value.newProperty).toBe('newValue');
});
});
});