Skip to content

Commit 84d0a3a

Browse files
author
Theo Ephraim
committed
add tests for insertDimension
1 parent 94cdf90 commit 84d0a3a

1 file changed

Lines changed: 53 additions & 3 deletions

File tree

test/rows.test.js

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ const creds = require('./service-account-creds.json');
77
const doc = docs.private;
88

99
let sheet;
10-
let rows;
11-
let row;
1210

1311
// having some issues caused by blank headers, so we add one here
1412
const HEADERS = ['numbers', 'letters', '', 'col1', 'col2', 'col3'];
@@ -38,9 +36,9 @@ describe('Row-based operations', () => {
3836
if (process.env.NODE_ENV === 'ci') afterEach(async () => delay(500));
3937

4038
describe('fetching rows', () => {
39+
let rows;
4140
it('can fetch multiple rows', async () => {
4241
rows = await sheet.getRows();
43-
row = rows[0];
4442
expect(rows.length).toEqual(INITIAL_DATA.length);
4543
});
4644

@@ -69,6 +67,8 @@ describe('Row-based operations', () => {
6967
});
7068

7169
describe('adding rows', () => {
70+
let rows;
71+
let row;
7272
it('can add a row with an array of values', async () => {
7373
const newRowData = ['5', 'F'];
7474
row = await sheet.addRow(newRowData);
@@ -140,6 +140,8 @@ describe('Row-based operations', () => {
140140
});
141141

142142
describe('deleting rows', () => {
143+
let rows;
144+
let row;
143145
it('can delete a row', async () => {
144146
rows = await sheet.getRows();
145147

@@ -169,6 +171,8 @@ describe('Row-based operations', () => {
169171
});
170172

171173
describe('updating rows', () => {
174+
let rows;
175+
let row;
172176
it('can update a row', async () => {
173177
rows = await sheet.getRows();
174178
row = rows[0];
@@ -293,6 +297,7 @@ describe('Row-based operations', () => {
293297
});
294298

295299
describe('header validation and cleanup', () => {
300+
let rows;
296301
beforeAll(async () => {
297302
sheet.loadCells('A1:E1');
298303
});
@@ -359,4 +364,49 @@ describe('Row-based operations', () => {
359364
await expect(sheet.getRows()).rejects.toThrow();
360365
});
361366
});
367+
368+
describe('custom header row index', () => {
369+
const CUSTOM_HEADER_ROW_INDEX = 3;
370+
let newSheet;
371+
372+
afterAll(async () => {
373+
await newSheet.delete();
374+
});
375+
376+
it('can set custom header row index while adding a sheet', async () => {
377+
newSheet = await doc.addSheet({
378+
headerValues: ['a', 'b', 'c'],
379+
headerRowIndex: CUSTOM_HEADER_ROW_INDEX,
380+
title: `custom header index sheet ${+new Date()}`,
381+
gridProperties: { rowCount: INITIAL_ROW_COUNT },
382+
});
383+
await newSheet.loadCells();
384+
const aHeaderCell = newSheet.getCell(CUSTOM_HEADER_ROW_INDEX - 1, 0);
385+
expect(aHeaderCell.value).toEqual('a');
386+
});
387+
388+
it('can load existing header row from custom index', async () => {
389+
newSheet.resetLocalCache(true);
390+
391+
// first row is empty so this should fail
392+
await expect(newSheet.getRows()).rejects.toThrow();
393+
394+
// load header row from custom index
395+
await newSheet.loadHeaderRow(CUSTOM_HEADER_ROW_INDEX);
396+
expect(newSheet.headerValues[0]).toEqual('a');
397+
398+
await newSheet.addRows([
399+
{ a: 'a1', b: 'b1' },
400+
{ a: 'a2', b: 'b2' },
401+
]);
402+
403+
const rows = await newSheet.getRows();
404+
expect(rows[0].a).toEqual('a1');
405+
406+
await newSheet.loadCells();
407+
// now verify header and data are in the right place, using the cell-based methods
408+
const aDataCell = newSheet.getCell(CUSTOM_HEADER_ROW_INDEX, 0);
409+
expect(aDataCell.value).toEqual('a1');
410+
});
411+
});
362412
});

0 commit comments

Comments
 (0)