substance
Version:
Substance is a JavaScript library for web-based content editing. It provides building blocks for realizing custom text editors and web-based publishing system. It is developed to power our online editing platform [Substance](http://substance.io).
70 lines (63 loc) • 2.09 kB
JavaScript
import { test } from 'substance-test'
import { tableHelpers } from 'substance'
test('tableHelpers: getColumnLabel()', t => {
t.equal(tableHelpers.getColumnLabel(0), 'A')
t.equal(tableHelpers.getColumnLabel(26), 'AA')
t.end()
})
test('tableHelpers: getColumnIndex()', t => {
t.equal(tableHelpers.getColumnIndex('A'), 0)
t.equal(tableHelpers.getColumnIndex('AA'), 26)
t.equal(tableHelpers.getColumnIndex('AB'), 27)
t.equal(tableHelpers.getColumnIndex('AZ'), 51)
t.equal(tableHelpers.getColumnIndex('BA'), 52)
t.equal(tableHelpers.getColumnIndex('ABC'), ((1 * 26 * 26) + (2 * 26) + 3) - 1)
t.end()
})
test('tableHelpers: getRowCol()', t => {
t.deepEqual(tableHelpers.getRowCol('A1'), [0, 0])
t.deepEqual(tableHelpers.getRowCol('AA2'), [1, 26])
t.end()
})
test('tableHelpers: getCellLabel()', t => {
t.equal(tableHelpers.getCellLabel(0, 0), 'A1')
t.equal(tableHelpers.getCellLabel(1, 26), 'AA2')
t.end()
})
test('tableHelpers: getIndexesFromRange()', t => {
t.deepEqual(tableHelpers.getIndexesFromRange('A1', 'B10'), {
startRow: 0,
startCol: 0,
endRow: 9,
endCol: 1
})
// should be independent of order
t.deepEqual(tableHelpers.getIndexesFromRange('B10', 'A1'), {
startRow: 0,
startCol: 0,
endRow: 9,
endCol: 1
})
t.end()
})
test('tableHelpers: getRangeFromMatrix()', t => {
const cells = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12]
]
// single cell
t.deepEqual(tableHelpers.getRangeFromMatrix(cells, 0, 1, 0, 1), 2)
// slice of a row
t.deepEqual(tableHelpers.getRangeFromMatrix(cells, 0, 1, 0, 2), [2, 3])
// slice of a column
t.deepEqual(tableHelpers.getRangeFromMatrix(cells, 0, 1, 2, 1), [2, 5, 8])
// range
t.deepEqual(tableHelpers.getRangeFromMatrix(cells, 0, 0, 1, 1), [[1, 2], [4, 5]])
// force 2D
t.deepEqual(tableHelpers.getRangeFromMatrix(cells, 0, 1, 0, 1, true), [[2]])
t.deepEqual(tableHelpers.getRangeFromMatrix(cells, 0, 1, 0, 2, true), [[2, 3]])
t.deepEqual(tableHelpers.getRangeFromMatrix(cells, 0, 1, 2, 1, true), [[2], [5], [8]])
t.end()
})