2019-11-18 09:39:32 -05:00
|
|
|
// Ported from js-yaml v3.13.1:
|
|
|
|
// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da
|
|
|
|
// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.
|
2020-01-21 10:01:55 -05:00
|
|
|
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
|
2019-11-18 09:39:32 -05:00
|
|
|
|
2019-12-21 03:57:51 -05:00
|
|
|
import { parse, parseAll } from "./parse.ts";
|
2019-11-18 09:39:32 -05:00
|
|
|
import { test } from "../../testing/mod.ts";
|
|
|
|
import { assertEquals } from "../../testing/asserts.ts";
|
|
|
|
|
|
|
|
test({
|
2019-12-21 03:57:51 -05:00
|
|
|
name: "`parse` parses single document yaml string",
|
2019-11-18 09:39:32 -05:00
|
|
|
fn(): void {
|
2019-12-21 03:57:51 -05:00
|
|
|
const yaml = `
|
|
|
|
test: toto
|
|
|
|
foo:
|
|
|
|
bar: True
|
|
|
|
baz: 1
|
|
|
|
qux: ~
|
|
|
|
`;
|
2019-11-18 09:39:32 -05:00
|
|
|
|
2019-12-21 03:57:51 -05:00
|
|
|
const expected = { test: "toto", foo: { bar: true, baz: 1, qux: null } };
|
2019-11-18 09:39:32 -05:00
|
|
|
|
2019-12-21 03:57:51 -05:00
|
|
|
assertEquals(parse(yaml), expected);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
test({
|
|
|
|
name: "`parseAll` parses the yaml string with multiple documents",
|
|
|
|
fn(): void {
|
|
|
|
const yaml = `
|
|
|
|
---
|
|
|
|
id: 1
|
|
|
|
name: Alice
|
|
|
|
---
|
|
|
|
id: 2
|
|
|
|
name: Bob
|
|
|
|
---
|
|
|
|
id: 3
|
|
|
|
name: Eve
|
|
|
|
`;
|
|
|
|
const expected = [
|
|
|
|
{
|
|
|
|
id: 1,
|
|
|
|
name: "Alice"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 2,
|
|
|
|
name: "Bob"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 3,
|
|
|
|
name: "Eve"
|
|
|
|
}
|
|
|
|
];
|
|
|
|
assertEquals(parseAll(yaml), expected);
|
2019-11-18 09:39:32 -05:00
|
|
|
}
|
|
|
|
});
|