@gooddata/gooddata-js
Version:
GoodData JavaScript SDK
46 lines (43 loc) • 4.35 kB
text/typescript
// (C) 2007-2020 GoodData Corporation
import * as measures from "./fixtures/MeasureConverter.visObj.fixtures";
import * as afm from "./fixtures/MeasureConverter.afm.fixtures";
import MeasureConverter from "../MeasureConverter";
import { VisualizationObject } from "@gooddata/typings";
import IMeasure = VisualizationObject.IMeasure;
function addFormat(measure: IMeasure, format: string = "$#,##0 custom") {
return {
measure: {
...measure.measure,
format,
},
};
}
describe("convertMeasure", () => {
it.each`
testCase | inputVizObjMeasure | outputAfmMeasure
${"simple measures defined by URI"} | ${measures.simpleMeasureWithUri} | ${afm.simpleMeasureWithUri}
${"simple measure defined by identifier"} | ${measures.simpleMeasureWithIdentifiers} | ${afm.simpleMeasureWithIdentifiers}
${"simple measure, keeping custom format"} | ${addFormat(measures.simpleMeasureWithUri)} | ${afm.simpleMeasureWithFormat}
${"measure with filters"} | ${measures.measureWithFilters} | ${afm.measureWithFilters}
${"renamed measure"} | ${measures.renamedMeasure} | ${afm.renamedMeasure}
${"fact-based measure, not adding default format"} | ${measures.factBasedMeasure} | ${afm.factBasedMeasure}
${"fact-based measure, keeping custom format"} | ${addFormat(measures.factBasedMeasure)} | ${afm.factBasedMeasureWithCustomFormat}
${"fact-based measure in %, adding default format"} | ${measures.factBasedMeasureInPercent} | ${afm.factBasedMeasureInPercent}
${"fact-based measure in %, keeping custom format"} | ${addFormat(measures.factBasedMeasureInPercent)} | ${afm.factBasedMeasureInPercentWithCustomFormat}
${"attribute-based measure, adding default format"} | ${measures.attributeBasedMeasure} | ${afm.attributeBasedMeasure}
${"attribute-based measure, keeping custom format"} | ${addFormat(measures.attributeBasedMeasure)} | ${afm.attributeBasedMeasureWithCustomFormat}
${"attribute-based measure in %, adding default format"} | ${measures.attributeBasedMeasureInPercent} | ${afm.attributeBasedMeasureInPercent}
${"attribute-based measure in %, keeping custom format"} | ${addFormat(measures.attributeBasedMeasureInPercent)} | ${afm.attributeBasedMeasureInPercentWithCustomFormat}
${"POP measure, not adding default format"} | ${measures.popMeasure} | ${afm.popMeasure}
${"POP measure, keeping default format"} | ${addFormat(measures.popMeasure)} | ${afm.popMeasureWithCustomFormat}
${"previous period measure, not adding default format"} | ${measures.previousPeriodMeasure} | ${afm.previousPeriodMeasure}
${"measure with show in percent, adding default format"} | ${measures.showInPercentMeasure} | ${afm.showInPercentMeasure}
${"measure with show in percent, keeping custom format"} | ${addFormat(measures.showInPercentMeasure)} | ${afm.showInPercentWithCustomFormat}
${"arithmetic measure, not adding default format"} | ${measures.arithmeticMeasure} | ${afm.arithmeticMeasure}
${"arithmetic measure, keeping custom format"} | ${addFormat(measures.arithmeticMeasure)} | ${afm.arithmeticMeasureWithCustomFormat}
${"arithmetic measure-change, adding default format"} | ${measures.arithmeticMeasureChange} | ${afm.arithmeticMeasureChange}
${"arithmetic measure-change, keeping custom format"} | ${addFormat(measures.arithmeticMeasureChange)} | ${afm.arithmeticMeasureWithChangeOperatorAndCustomFormat}
`(`should convert $testCase`, ({ inputVizObjMeasure, outputAfmMeasure }) => {
expect(MeasureConverter.convertMeasure(inputVizObjMeasure)).toEqual(outputAfmMeasure);
});
});