78 lines
3.0 KiB
JavaScript
78 lines
3.0 KiB
JavaScript
import path from 'path'
|
|
import { getDataset } from "../../lib/dataset"
|
|
import { addView, getDataForViewSpec } from '../../lib/utils'
|
|
const plotlyDatasetsDirectory = path.join(process.cwd(), 'fixtures', 'datasetsPlotlyView')
|
|
const vegaDatasetsDirectory = path.join(process.cwd(), 'fixtures', 'datasetsVegaView')
|
|
const doubleDatasetsDirectory = path.join(process.cwd(), 'fixtures', 'datasetsDoubleView')
|
|
|
|
let plotlyDataset
|
|
let vegaDataset
|
|
let doubleDataset
|
|
let plotlyDatasetWithView
|
|
let vegaDatasetWithView
|
|
let doubleDatasetWithView
|
|
|
|
beforeAll(async () => {
|
|
plotlyDataset = await getDataset(plotlyDatasetsDirectory)
|
|
vegaDataset = await getDataset(vegaDatasetsDirectory)
|
|
doubleDataset = await getDataset(doubleDatasetsDirectory)
|
|
|
|
plotlyDatasetWithView = addView(plotlyDataset)
|
|
vegaDatasetWithView = addView(vegaDataset)
|
|
doubleDatasetWithView = addView(doubleDataset)
|
|
});
|
|
|
|
|
|
describe("AddView", () => {
|
|
it("_value field is added to Plotly datapackage", () => {
|
|
const resource = plotlyDatasetWithView.props.dataset.resources[0]
|
|
expect("_values" in resource).toBe(true)
|
|
expect(resource["_values"].length > 0).toBe(true)
|
|
});
|
|
it("Plotly spec is added to datapackage", () => {
|
|
const spec = JSON.parse(plotlyDatasetWithView.props.specs)[0]
|
|
expect(spec.specType).toBe("plotly")
|
|
expect(spec.layout.title).toBe("Plotly Layout Title")
|
|
expect(spec.data[0].x.length).toBeGreaterThan(0)
|
|
expect(spec.data[0].y.length).toBeGreaterThan(0)
|
|
});
|
|
it("_value field is added to datapackage with double views", () => {
|
|
const resources = doubleDatasetWithView.props.dataset.resources
|
|
resources.map((resource) => {
|
|
expect("_values" in resource).toBe(true)
|
|
expect(resource["_values"].length > 0).toBe(true)
|
|
})
|
|
|
|
});
|
|
it("view spec is created for each view in a datapackage", () => {
|
|
const specs = JSON.parse(doubleDatasetWithView.props.specs)
|
|
const simpleSpec = specs[0]
|
|
const plotlySpec = specs[1]
|
|
|
|
expect(simpleSpec.specType).toBe("simple")
|
|
expect(simpleSpec.layout.title).toBe("title1")
|
|
expect(simpleSpec.data[0].x.length).toBeGreaterThan(0)
|
|
expect(simpleSpec.data[0].y.length).toBeGreaterThan(0)
|
|
|
|
expect(plotlySpec.specType).toBe("plotly")
|
|
expect(plotlySpec.layout.title).toBe("Plotly Layout Title")
|
|
expect(plotlySpec.data[0].x.length).toBeGreaterThan(0)
|
|
expect(plotlySpec.data[0].y.length).toBeGreaterThan(0)
|
|
|
|
});
|
|
});
|
|
|
|
describe("getDataForViewSpec", () => {
|
|
it("Generates right data for vega spec", ()=>{
|
|
const resource = vegaDataset.resources[0]
|
|
const data = getDataForViewSpec(resource, "vega")
|
|
expect(data).toStrictEqual(resource.sample)
|
|
})
|
|
it("Generates right data for plotly spec", ()=>{
|
|
const resource = plotlyDataset.resources[0]
|
|
const data = getDataForViewSpec(resource, "plotly")
|
|
expect(data).not.toStrictEqual(resource.sample[0])
|
|
expect(data[0]).toStrictEqual(Object.keys(resource.sample[0]))
|
|
})
|
|
|
|
}) |