(t, srcFile, mapSourceFile, compiled, token)
| 766 | } |
| 767 | |
| 768 | function expectMappedToken(t, srcFile, mapSourceFile, compiled, token) { |
| 769 | if (!token) { |
| 770 | token = compiled; |
| 771 | compiled = mapSourceFile; |
| 772 | mapSourceFile = srcFile; |
| 773 | } |
| 774 | |
| 775 | var src = fs.readFileSync(srcFile, 'utf-8'); |
| 776 | var compiledPosition = indexToLineAndColumn(compiled, compiled.indexOf(token)); |
| 777 | var expectedSrcPosition = indexToLineAndColumn(src, src.indexOf(token)); |
| 778 | expectedSrcPosition.name = null; |
| 779 | expectedSrcPosition.source = mapSourceFile; |
| 780 | |
| 781 | if (expectedSrcPosition.column === -1) { |
| 782 | t.fail('Token "' + token + '" should be in expected code'); |
| 783 | } |
| 784 | if (compiledPosition.column === -1) { |
| 785 | t.fail('Token "' + token + '" should be in compiled code'); |
| 786 | } |
| 787 | |
| 788 | if (expectedSrcPosition.column !== -1 && compiledPosition.column !== -1) { |
| 789 | var map = convert.fromSource(compiled).toObject(); |
| 790 | var smc = new sm.SourceMapConsumer(map); |
| 791 | var actualSrcPosition = smc.originalPositionFor(compiledPosition); |
| 792 | |
| 793 | t.deepEqual(actualSrcPosition, expectedSrcPosition, 'Token "' + token + '" should be mapped correctly'); |
| 794 | } |
| 795 | } |
| 796 | |
| 797 | function countLinesUntil(str, index) { |
| 798 | var count = 1; |
no test coverage detected