mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-04-25 09:16:15 -04:00
fix(yaml-to-json): allow merge key to be parsed (#1359)
* fix(yaml-to-json): allow merge key to be parsed * correct e2e tests --------- Co-authored-by: lvluu <loi.van.luu@mgm-tp.com>
This commit is contained in:
parent
aa8cba96de
commit
f836666417
2 changed files with 50 additions and 1 deletions
|
@ -28,4 +28,53 @@ test.describe('Tool - Yaml to json', () => {
|
|||
`.trim(),
|
||||
);
|
||||
});
|
||||
|
||||
test('Yaml is parsed with merge key and output correct json', async ({ page }) => {
|
||||
await page.getByTestId('input').fill(`
|
||||
default: &default
|
||||
name: ''
|
||||
age: 0
|
||||
|
||||
person:
|
||||
*default
|
||||
|
||||
persons:
|
||||
- <<: *default
|
||||
age: 1
|
||||
- <<: *default
|
||||
name: John
|
||||
- { age: 3, <<: *default }
|
||||
|
||||
`);
|
||||
|
||||
const generatedJson = await page.getByTestId('area-content').innerText();
|
||||
|
||||
expect(generatedJson.trim()).toEqual(
|
||||
`
|
||||
{
|
||||
"default": {
|
||||
"name": "",
|
||||
"age": 0
|
||||
},
|
||||
"person": {
|
||||
"name": "",
|
||||
"age": 0
|
||||
},
|
||||
"persons": [
|
||||
{
|
||||
"name": "",
|
||||
"age": 1
|
||||
},
|
||||
{
|
||||
"name": "John",
|
||||
"age": 0
|
||||
},
|
||||
{
|
||||
"age": 3,
|
||||
"name": ""
|
||||
}
|
||||
]
|
||||
}`.trim(),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -6,7 +6,7 @@ import { withDefaultOnError } from '@/utils/defaults';
|
|||
|
||||
function transformer(value: string) {
|
||||
return withDefaultOnError(() => {
|
||||
const obj = parseYaml(value);
|
||||
const obj = parseYaml(value, { merge: true });
|
||||
return obj ? JSON.stringify(obj, null, 3) : '';
|
||||
}, '');
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue