remix-project mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
remix-project/test/util.js

118 lines
3.7 KiB

'use strict'
var sourceMapping = require('./resources/sourceMapping')
var index = require('../src/index')
var tape = require('tape')
var util = require('../src/helpers/util')
tape('Util', function (t) {
t.test('lowerbound', function (st) {
st.plan(7)
var array = [2, 5, 8, 9, 45, 56, 78]
var lowerBound = util.findLowerBound(10, array)
st.equal(lowerBound, 3)
lowerBound = util.findLowerBound(3, array)
st.equal(lowerBound, 0)
lowerBound = util.findLowerBound(100, array)
st.equal(lowerBound, 6)
lowerBound = util.findLowerBound(1, array)
st.equal(lowerBound, -1)
lowerBound = util.findLowerBound(45, array)
st.equal(lowerBound, 4)
array = [2, 5, 8, 9, 9, 45, 56, 78]
lowerBound = util.findLowerBound(9, array)
st.equal(lowerBound, 4)
lowerBound = util.findLowerBound(9, [])
st.equal(lowerBound, -1)
})
var testSourceMapping = {}
t.test('sourceMappingDecoder', function (st) {
st.plan(28)
var sourceMappingDecoder = new index.util.SourceMappingDecoder()
console.log('test decompressAll')
var result = sourceMappingDecoder.decompressAll(sourceMapping.mapping)
st.equal(result[0].start, 0)
st.equal(result[0].length, 205)
st.equal(result[0].file, 4)
st.equal(result[0].jump, '-')
st.equal(result[21].start, 0)
st.equal(result[21].length, 205)
st.equal(result[21].file, 4)
st.equal(result[21].jump, '-')
testSourceMapping[21] = result[21]
st.equal(result[22].start, 55)
st.equal(result[22].length, 74)
st.equal(result[22].file, 4)
st.equal(result[22].jump, '-')
var last = result.length - 1
st.equal(result[last].start, 142)
st.equal(result[last].length, 61)
st.equal(result[last].file, 4)
st.equal(result[last].jump, 'o')
testSourceMapping['last'] = result[last]
console.log('test decompress')
result = sourceMappingDecoder.atIndex(22, sourceMapping.mapping)
console.log(result)
st.equal(result.start, 55)
st.equal(result.length, 74)
st.equal(result.file, 4)
st.equal(result.jump, '-')
testSourceMapping[22] = result
result = sourceMappingDecoder.atIndex(82, sourceMapping.mapping)
console.log(result)
st.equal(result.start, 103)
st.equal(result.length, 2)
st.equal(result.file, 4)
st.equal(result.jump, '-')
testSourceMapping[82] = result
result = sourceMappingDecoder.atIndex(85, sourceMapping.mapping)
console.log(result)
st.equal(result.start, 99)
st.equal(result.length, 6)
st.equal(result.file, 4)
st.equal(result.jump, '-')
testSourceMapping[85] = result
})
t.test('sourceMappingLineColumnConverter', function (st) {
st.plan(14)
var sourceMappingDecoder = new index.util.SourceMappingDecoder()
var linesbreak = sourceMappingDecoder.getLinebreakPositions(sourceMapping.source)
st.equal(linesbreak[0], 16)
st.equal(linesbreak[5], 84)
var result = sourceMappingDecoder.convertOffsetToLineColumn(testSourceMapping[21], linesbreak)
st.equal(result.start.line, 0)
st.equal(result.start.column, 0)
st.equal(result.end.line, 15)
st.equal(result.end.column, 1)
result = sourceMappingDecoder.convertOffsetToLineColumn(testSourceMapping[82], linesbreak)
st.equal(result.start.line, 7)
st.equal(result.start.column, 12)
st.equal(result.end.line, 7)
st.equal(result.end.column, 14)
var res = { // point to \n
start: 103,
length: 4,
file: 4,
jump: '-'
}
result = sourceMappingDecoder.convertOffsetToLineColumn(res, linesbreak)
st.equal(result.start.line, 7)
st.equal(result.start.column, 12)
st.equal(result.end.line, 7)
st.equal(result.end.column, 16)
})
})