|
@@ -0,0 +1,93 @@
|
|
|
+/**
|
|
|
+ * JSON to CSV tests.
|
|
|
+ *
|
|
|
+ * @author mshwed [m@ttshwed.com]
|
|
|
+ *
|
|
|
+ * @copyright Crown Copyright 2019
|
|
|
+ * @license Apache-2.0
|
|
|
+ */
|
|
|
+import TestRegister from "../TestRegister";
|
|
|
+
|
|
|
+const EXPECTED_CSV_SINGLE = "a,b,c\r\n1,2,3\r\n";
|
|
|
+const EXPECTED_CSV_MULTIPLE = "a,b,c\r\n1,2,3\r\n1,2,3\r\n";
|
|
|
+const EXPECTED_CSV_EMPTY = "\r\n\r\n";
|
|
|
+
|
|
|
+TestRegister.addTests([
|
|
|
+ {
|
|
|
+ name: "JSON to CSV: strings as values",
|
|
|
+ input: JSON.stringify({a: "1", b: "2", c: "3"}),
|
|
|
+ expectedOutput: EXPECTED_CSV_SINGLE,
|
|
|
+ recipeConfig: [
|
|
|
+ {
|
|
|
+ op: "JSON to CSV",
|
|
|
+ args: [",", "\\r\\n"]
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "JSON to CSV: numbers as values",
|
|
|
+ input: JSON.stringify({a: 1, b: 2, c: 3}),
|
|
|
+ expectedOutput: EXPECTED_CSV_SINGLE,
|
|
|
+ recipeConfig: [
|
|
|
+ {
|
|
|
+ op: "JSON to CSV",
|
|
|
+ args: [",", "\\r\\n"]
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "JSON to CSV: numbers and strings as values",
|
|
|
+ input: JSON.stringify({a: 1, b: "2", c: 3}),
|
|
|
+ expectedOutput: EXPECTED_CSV_SINGLE,
|
|
|
+ recipeConfig: [
|
|
|
+ {
|
|
|
+ op: "JSON to CSV",
|
|
|
+ args: [",", "\\r\\n"]
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "JSON to CSV: JSON as an array",
|
|
|
+ input: JSON.stringify([{a: 1, b: "2", c: 3}]),
|
|
|
+ expectedOutput: EXPECTED_CSV_SINGLE,
|
|
|
+ recipeConfig: [
|
|
|
+ {
|
|
|
+ op: "JSON to CSV",
|
|
|
+ args: [",", "\\r\\n"]
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "JSON to CSV: multiple JSON values in an array",
|
|
|
+ input: JSON.stringify([{a: 1, b: "2", c: 3}, {a: 1, b: "2", c: 3}]),
|
|
|
+ expectedOutput: EXPECTED_CSV_MULTIPLE,
|
|
|
+ recipeConfig: [
|
|
|
+ {
|
|
|
+ op: "JSON to CSV",
|
|
|
+ args: [",", "\\r\\n"]
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "JSON to CSV: empty JSON",
|
|
|
+ input: JSON.stringify({}),
|
|
|
+ expectedOutput: EXPECTED_CSV_EMPTY,
|
|
|
+ recipeConfig: [
|
|
|
+ {
|
|
|
+ op: "JSON to CSV",
|
|
|
+ args: [",", "\\r\\n"]
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "JSON to CSV: empty JSON in array",
|
|
|
+ input: JSON.stringify([{}]),
|
|
|
+ expectedOutput: EXPECTED_CSV_EMPTY,
|
|
|
+ recipeConfig: [
|
|
|
+ {
|
|
|
+ op: "JSON to CSV",
|
|
|
+ args: [",", "\\r\\n"]
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ }
|
|
|
+]);
|