@lightdash/common 0.2881.3 → 0.2882.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/pivot/derivePivotConfigFromChart.d.ts.map +1 -1
  3. package/dist/cjs/pivot/derivePivotConfigFromChart.js +2 -1
  4. package/dist/cjs/pivot/derivePivotConfigFromChart.js.map +1 -1
  5. package/dist/cjs/pivot/derivePivotConfigFromChart.test.js +227 -0
  6. package/dist/cjs/pivot/derivePivotConfigFromChart.test.js.map +1 -1
  7. package/dist/cjs/pivot/pivotQueryResults.test.js +45 -0
  8. package/dist/cjs/pivot/pivotQueryResults.test.js.map +1 -1
  9. package/dist/cjs/pivot/pivotResultsAsCsv.test.js +56 -0
  10. package/dist/cjs/pivot/pivotResultsAsCsv.test.js.map +1 -1
  11. package/dist/esm/.tsbuildinfo +1 -1
  12. package/dist/esm/pivot/derivePivotConfigFromChart.d.ts.map +1 -1
  13. package/dist/esm/pivot/derivePivotConfigFromChart.js +2 -1
  14. package/dist/esm/pivot/derivePivotConfigFromChart.js.map +1 -1
  15. package/dist/esm/pivot/derivePivotConfigFromChart.test.js +228 -1
  16. package/dist/esm/pivot/derivePivotConfigFromChart.test.js.map +1 -1
  17. package/dist/esm/pivot/pivotQueryResults.test.js +45 -0
  18. package/dist/esm/pivot/pivotQueryResults.test.js.map +1 -1
  19. package/dist/esm/pivot/pivotResultsAsCsv.test.js +56 -0
  20. package/dist/esm/pivot/pivotResultsAsCsv.test.js.map +1 -1
  21. package/dist/types/.tsbuildinfo +1 -1
  22. package/dist/types/pivot/derivePivotConfigFromChart.d.ts.map +1 -1
  23. package/dist/types/pivot/derivePivotConfigFromChart.js +2 -1
  24. package/dist/types/pivot/derivePivotConfigFromChart.js.map +1 -1
  25. package/dist/types/pivot/derivePivotConfigFromChart.test.js +228 -1
  26. package/dist/types/pivot/derivePivotConfigFromChart.test.js.map +1 -1
  27. package/dist/types/pivot/pivotQueryResults.test.js +45 -0
  28. package/dist/types/pivot/pivotQueryResults.test.js.map +1 -1
  29. package/dist/types/pivot/pivotResultsAsCsv.test.js +56 -0
  30. package/dist/types/pivot/pivotResultsAsCsv.test.js.map +1 -1
  31. package/package.json +1 -1
@@ -76,6 +76,62 @@ describe('pivotResultsAsCsv', () => {
76
76
  const allValues = result.flat();
77
77
  expect(allValues).toContain('Page Views');
78
78
  });
79
+ it('returns empty cells for rows missing an expected pivot field instead of throwing (#16866)', () => {
80
+ // https://github.com/lightdash/lightdash/issues/16866
81
+ // Repro: a CSV export with a pivoted chart whose result rows are
82
+ // missing one of the value-column fields used to throw
83
+ // `Cannot get key 'X' from object` deep inside the pivot pipeline,
84
+ // crashing scheduled deliveries silently.
85
+ // Expectation: pivotResultsAsCsv tolerates missing fields by
86
+ // emitting empty/placeholder cells, so the export still succeeds.
87
+ // The safe accessor lives in pivotResultsAsData and reads
88
+ // `row[fieldId]?.value?.raw ?? ''` — locking the empty-string
89
+ // fallback prevents a regression that re-introduces the throw.
90
+ const partialRows = pivotQueryResults_mock_1.RESULT_ROWS_2DIM_2METRIC.map((row, idx) => {
91
+ if (idx === 1) {
92
+ // Strip the devices metric on one row to simulate a
93
+ // results-set missing a field that valuesColumns expects.
94
+ const { devices, ...rest } = row;
95
+ return rest;
96
+ }
97
+ return row;
98
+ });
99
+ const callPivot = () => (0, pivotQueryResults_1.pivotResultsAsCsv)({
100
+ pivotConfig: {
101
+ pivotDimensions: ['page'],
102
+ metricsAsRows: false,
103
+ },
104
+ rows: partialRows,
105
+ itemMap: buildItemsMap(),
106
+ metricQuery: {
107
+ exploreName: 'test',
108
+ ...pivotQueryResults_mock_1.METRIC_QUERY_2DIM_2METRIC,
109
+ filters: {},
110
+ sorts: [],
111
+ limit: 500,
112
+ customDimensions: [],
113
+ metricOverrides: {},
114
+ dimensionOverrides: {},
115
+ },
116
+ customLabels: undefined,
117
+ onlyRaw: false,
118
+ maxColumnLimit: 60,
119
+ pivotDetails: null,
120
+ undefinedCharacter: '',
121
+ });
122
+ expect(callPivot).not.toThrow();
123
+ const result = callPivot();
124
+ // The output is still a 2D string array of the same surface shape.
125
+ expect(Array.isArray(result)).toBe(true);
126
+ result.forEach((row) => {
127
+ expect(Array.isArray(row)).toBe(true);
128
+ row.forEach((cell) => {
129
+ // No undefined cells leak through — the safe accessor
130
+ // returns empty string when the source field is missing.
131
+ expect(typeof cell).toBe('string');
132
+ });
133
+ });
134
+ });
79
135
  it('produces same number of columns as pivotResultsAsData', () => {
80
136
  const params = {
81
137
  pivotConfig: {
@@ -1 +1 @@
1
- {"version":3,"file":"pivotResultsAsCsv.test.js","sourceRoot":"","sources":["../../../src/pivot/pivotResultsAsCsv.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pivotResultsAsCsv.test.js","sourceRoot":"","sources":["../../../src/pivot/pivotResultsAsCsv.test.ts"],"names":[],"mappings":"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"}