“use strict”; var assert = require(“power-assert”); var sourceMap = require(“source-map”); var Generator = sourceMap.SourceMapGenerator; var Consumer = sourceMap.SourceMapConsumer; var transfer = require(“../lib/multi-stage-sourcemap”); describe(“multi-stage-sourcemap”, function () {
var middleSource; var lastSource; beforeEach(function () { // origin -> middle middleSource = (function () { var gen = new Generator({ file: 'middle.js', sourceRoot: '/path/to/root' }); gen.addMapping({ source: 'original.js', original: { line: 1, column: 0 }, generated: { line: 2, column: 2 }, name: 'foo' }); return gen.toString(); })(); // middle -> last lastSource = (function () { var gen = new Generator({ file: 'last.js', sourceRoot: '/path/to/root' }); gen.addMapping({ source: 'middle.js', original: { line: 2, column: 2 }, generated: { line: 4, column: 4 }, name: 'bar' }); return gen.toString(); })(); }); it("should convert js", function () { // map result to origin var resultMap = transfer({fromSourceMap: lastSource, toSourceMap: middleSource}); var resultSMC = new Consumer(resultMap); var originalPosition = resultSMC.originalPositionFor({ line: 4, column: 4 }); assert(originalPosition.source === '/path/to/root/original.js'); assert(originalPosition.line === 1); assert(originalPosition.column === 0); });
});