99 lines
5.2 KiB
JavaScript
99 lines
5.2 KiB
JavaScript
// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
// ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃
|
|
// ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃
|
|
// ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃
|
|
// ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃
|
|
// ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
|
|
// ┃ Copyright (c) 2017, the Perspective Authors. ┃
|
|
// ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
|
|
// ┃ This file is part of the Perspective library, distributed under the terms ┃
|
|
// ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
|
|
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
|
|
import { test, expect } from "@perspective-dev/test";
|
|
import perspective from "../perspective_client";
|
|
import { int_float_string_data } from "./_shared";
|
|
|
|
((perspective) => {
|
|
test.describe("to_json", function () {
|
|
test("should emit same number of column names as number of pivots", async function () {
|
|
let table = await perspective.table(int_float_string_data);
|
|
let view = await table.view({
|
|
group_by: ["int"],
|
|
split_by: ["float", "string"],
|
|
sort: [["int", "asc"]],
|
|
});
|
|
let json = await view.to_json();
|
|
// Get the first emitted column name that is not __ROW_PATH__
|
|
let name = Object.keys(json[0])[1];
|
|
// make sure that number of separators = num of split by
|
|
expect((name.match(/\|/g) || []).length).toEqual(2);
|
|
view.delete();
|
|
table.delete();
|
|
});
|
|
|
|
test("should return dates in native form by default", async function () {
|
|
let table = await perspective.table([
|
|
{ datetime: new Date("2016-06-13") },
|
|
{ datetime: new Date("2016-06-14") },
|
|
]);
|
|
let view = await table.view();
|
|
let json = await view.to_json();
|
|
expect(json).toEqual([
|
|
{ datetime: 1465776000000 },
|
|
{ datetime: 1465862400000 },
|
|
]);
|
|
view.delete();
|
|
table.delete();
|
|
});
|
|
|
|
test.skip("OG - should return dates in readable format on passing string in options", async function () {
|
|
let table = await perspective.table([
|
|
{ datetime: new Date("2016-06-13") },
|
|
{ datetime: new Date("2016-06-14") },
|
|
]);
|
|
let view = await table.view();
|
|
let json = await view.to_json({ formatted: true });
|
|
expect(json).toEqual([
|
|
{ datetime: "2016-06-13" },
|
|
{ datetime: "2016-06-14" },
|
|
]);
|
|
view.delete();
|
|
table.delete();
|
|
});
|
|
|
|
test("should return dates in readable format on passing string in options", async function () {
|
|
let table = await perspective.table({
|
|
date: "date",
|
|
});
|
|
await table.update([
|
|
{ date: new Date("2016-06-13") },
|
|
{ date: new Date("2016-06-14") },
|
|
]);
|
|
let view = await table.view();
|
|
let json = await view.to_json({ formatted: true });
|
|
expect(json).toEqual([
|
|
{ date: "2016-06-13" },
|
|
{ date: "2016-06-14" },
|
|
]);
|
|
view.delete();
|
|
table.delete();
|
|
});
|
|
|
|
test("should return datetimes in readable format on passing string in options", async function () {
|
|
let table = await perspective.table([
|
|
{ datetime: new Date(2016, 0, 1, 0, 30) },
|
|
{ datetime: new Date(2016, 5, 15, 19, 20) },
|
|
]);
|
|
let view = await table.view();
|
|
let json = await view.to_json({ formatted: true });
|
|
expect(json).toEqual([
|
|
{ datetime: "2016-01-01 00:30:00.000" },
|
|
{ datetime: "2016-06-15 19:20:00.000" },
|
|
]);
|
|
view.delete();
|
|
table.delete();
|
|
});
|
|
});
|
|
})(perspective);
|