diff --git a/packages/ui/src/hooks/entities.test.tsx b/packages/ui/src/hooks/entities.test.tsx index 467f03e9d..62d7917ab 100644 --- a/packages/ui/src/hooks/entities.test.tsx +++ b/packages/ui/src/hooks/entities.test.tsx @@ -2,7 +2,8 @@ import { act, renderHook } from '@testing-library/react'; import { CamelResource, SourceSchemaType } from '../models/camel'; import { CamelRouteVisualEntity } from '../models/visualization/flows'; import { camelRouteJson, camelRouteYaml } from '../stubs/camel-route'; -import { EventNotifier } from '../utils'; +import { camelRouteYaml_1_1_original, camelRouteYaml_1_1_updated } from '../stubs/camel-route-yaml-1.1'; +import { EventNotifier, setValue } from '../utils'; import { useEntities } from './entities'; describe('useEntities', () => { @@ -42,9 +43,24 @@ describe('useEntities', () => { expect(result.current.visualEntities).toEqual([new CamelRouteVisualEntity(camelRouteJson.route)]); }); - it('should notifiy subscribers when the entities are updated', () => { + it('should serialize using YAML 1.1', () => { const notifierSpy = jest.spyOn(eventNotifier, 'next'); + const { result } = renderHook(() => useEntities()); + act(() => { + eventNotifier.next('code:updated', camelRouteYaml_1_1_original); + }); + + act(() => { + setValue(result.current.visualEntities[0], 'route.from.parameters.bindingMode', 'off'); + result.current.updateSourceCodeFromEntities(); + }); + + expect(notifierSpy).toHaveBeenCalledWith('entities:updated', camelRouteYaml_1_1_updated); + }); + + it('should notifiy subscribers when the entities are updated', () => { + const notifierSpy = jest.spyOn(eventNotifier, 'next'); const { result } = renderHook(() => useEntities()); act(() => { diff --git a/packages/ui/src/hooks/entities.ts b/packages/ui/src/hooks/entities.ts index 6df1ab6ce..bdd991aa0 100644 --- a/packages/ui/src/hooks/entities.ts +++ b/packages/ui/src/hooks/entities.ts @@ -57,7 +57,7 @@ export const useEntities = (): EntitiesContextResult => { }, [eventNotifier]); const updateSourceCodeFromEntities = useCallback(() => { - const code = stringify(camelResource, { sortMapEntries: camelResource.sortFn }) || ''; + const code = stringify(camelResource, { sortMapEntries: camelResource.sortFn, schema: 'yaml-1.1' }) || ''; eventNotifier.next('entities:updated', code); }, [camelResource, eventNotifier]); diff --git a/packages/ui/src/stubs/camel-route-yaml-1.1.ts b/packages/ui/src/stubs/camel-route-yaml-1.1.ts new file mode 100644 index 000000000..e10a26990 --- /dev/null +++ b/packages/ui/src/stubs/camel-route-yaml-1.1.ts @@ -0,0 +1,21 @@ +export const camelRouteYaml_1_1_original = ` +- route: + id: route-3376 + from: + id: from-3505 + uri: rest:post:/newCustomer + parameters: + host: localhost + steps: [] +`; + +export const camelRouteYaml_1_1_updated = `- route: + id: route-3376 + from: + id: from-3505 + uri: rest:post:/newCustomer + parameters: + bindingMode: "off" + host: localhost + steps: [] +`;