public void Parse_SourcesContentContainsOriginalSources()
        {
            var map = SourceMapParser.Parse(JsonSerializer.Serialize(Helper.TestMapWithSourcesContent));

            Assert.Equal(2, map.SourcesContent.Count);
            Assert.Equal(" ONE.foo = function (bar) {\n   return baz(bar);\n };", map.SourcesContent[0]);
            Assert.Equal(" TWO.inc = function (n) {\n   return n + 1;\n };", map.SourcesContent[1]);
        }
        /// <summary>
        /// Parses an encoded sourcemap string and matches each entry to an AST Node
        /// </summary>
        static (SourceMapEntry[] SourceMapEntries, AstNode[] AstNodes) ParseSourceMap(string encodedSourceMap, Dictionary <int, AstNode[]> astDict)
        {
            var sourceMapItems = SourceMapParser.Parse(encodedSourceMap);
            var astNodes       = new List <AstNode>();

            for (var i = 0; i < sourceMapItems.Length; i++)
            {
                var sourceMap = sourceMapItems[i];
                var node      = MatchSourceMapEntry(sourceMap, astDict);
                if (node != null)
                {
                    astNodes.Add(node);
                }
            }

            return(sourceMapItems, astNodes.ToArray());
        }
        // [Fact]
        public void Parse_MapsMappingTokensBackExactly()
        {
            var map = SourceMapParser.Parse(JsonSerializer.Serialize(Helper.TestMap));

            Helper.AssertMapping(1, 1, "/the/root/one.js", 1, 1, null, map);
            Helper.AssertMapping(1, 5, "/the/root/one.js", 1, 5, null, map);
            Helper.AssertMapping(1, 9, "/the/root/one.js", 1, 11, null, map);
            Helper.AssertMapping(1, 18, "/the/root/one.js", 1, 21, "bar", map);
            Helper.AssertMapping(1, 21, "/the/root/one.js", 2, 3, null, map);
            Helper.AssertMapping(1, 28, "/the/root/one.js", 2, 10, "baz", map);
            Helper.AssertMapping(1, 32, "/the/root/one.js", 2, 14, "bar", map);
            Helper.AssertMapping(2, 1, "/the/root/two.js", 1, 1, null, map);
            Helper.AssertMapping(2, 5, "/the/root/two.js", 1, 5, null, map);
            Helper.AssertMapping(2, 9, "/the/root/two.js", 1, 11, null, map);
            Helper.AssertMapping(2, 18, "/the/root/two.js", 1, 21, "n", map);
            Helper.AssertMapping(2, 21, "/the/root/two.js", 2, 3, null, map);
            Helper.AssertMapping(2, 28, "/the/root/two.js", 2, 10, "n", map);
        }
        public void Parse_SourceMap_ContainsOriginalSources()
        {
            SourceMap map;

            map = SourceMapParser.Parse(JsonSerializer.Serialize(Helper.TestMap));
            Assert.Equal("/the/root/one.js", map.Sources[0]);
            Assert.Equal("/the/root/two.js", map.Sources[1]);
            Assert.Equal(2, map.Sources.Count);

            map = SourceMapParser.Parse(JsonSerializer.Serialize(Helper.TestMapNoSourceRoot));
            Assert.Equal("one.js", map.Sources[0]);
            Assert.Equal("two.js", map.Sources[1]);
            Assert.Equal(2, map.Sources.Count);

            map = SourceMapParser.Parse(JsonSerializer.Serialize(Helper.TestMapEmptySourceRoot));
            Assert.Equal("one.js", map.Sources[0]);
            Assert.Equal("two.js", map.Sources[1]);
            Assert.Equal(2, map.Sources.Count);
        }
        public void Parse_ParsesSuccessfully()
        {
            var result = SourceMapParser.Parse(JsonSerializer.Serialize(Helper.TestMap));

            Assert.NotNull(result);
        }
        public void Parse_CanParseGeneratedSourcemaps(string path)
        {
            var map = SourceMapParser.Parse(File.ReadAllText(path));

            Assert.NotNull(map);
        }