Files
nebula.js/commands/serve/docs/fixture-format.md
2023-03-20 16:46:50 +01:00

2.5 KiB

Fixture format

Purpose

The fixture is a set of configurations which specifies the visualization to render and how it behaves. For example, type of visualization, what data to display, theme to use and which feature flags to activate.

Rendering a visualization from a fixture multiple times yields the same result. This makes fixture rendering ideal to use in tests to verify that the visualization works as expected.

Example

export default () => ({
  type: 'sn-grid-chart',
  instanceConfig: {
    context: {
      theme: 'dark',
    }
  },
  snConfig: {
    ...
  },
  genericObjects: [ ... ]
});

Fixture configurations

type

Name of visualization. For example, sn-grid-chart.

instanceConfig

Configurations when initiating embed instance (embed(app, instanceConfig)).

export default () => ({
  context: {
    theme: 'dark'
  },
  ...
});
export default () => ({
  context: {
    constraints: {
      select: true
    },
    flags: {
      IMPROVED_GRID_CHART: true
    }
  },
  ...
});

snConfig

Configurations when rendering supernova visualization (nebbie.render(snConfig)).

export default () => ({
  snConfig: {
    options: {
      myOption: 'option',
    },
    // ...
  },
});

genericObjects

Generic objects to render visualization with. The objects are used as input to EnigmaMocker to base mock upon. See @nebula.js/enigma-mocker for more details.

export default () => ({
  genericObjects: [{
    getLayout() {
      return {
        qInfo: { qId: 'uttss2' }
      };
    }
    getHyperCubeData() {
      return [ ... ];
    }
  }]
});

enigmaMockerOptions

Options for EnigmaMocker that will be used when rendering the fixture. See @nebula.js/enigma-mocker for more details.

export default () => ({
  enigmaMockerOptions: {
    delay: 3000,
  },
  // ...
});

Serve configurations

When starting Nebula serve a number of configurations may be added, e.g. type of visualization. These configurations are used as fallback values in case no value is present in the fixture. This is useful to reduce the amount of boilerplate config in the fixtures.

type

Specify type of visualization.

nebula serve --type sn-grid-chart

entry

Specify visualization artifact / project to render. When registering the visualization type the supplied artifact will be used to render it.

nebula serve --entry ./dist/sn-grid-chart.js

flags

Specify feature flags to enable / disable.