Pagy宝石/茶匙测试:SyntaxError:JSON解析错误:预期中的“}”

时间:2019-06-12 14:04:52

标签: javascript rspec jasmine teaspoon

我正在使用Teaspoon-Jasmine,并创建了一个夹具来测试我的Pagy分页导航链接。 我从视图复制了输出HTML,但是我的装置似乎在测试过程中出现以下错误,但是当在没有固定装置的实际页面上运行时,一切正常。我认为创建夹具的方式存在问题。

有人知道为什么初始化解析器无法正确解析json吗?

var custom_html = 
   `<div id='custom-pagination'>
      <nav id="pagy-d132b15ba09f3e4f847de0a869486f19c77e4320" class="pagy-bootstrap-nav-js pagination" role="navigation" aria-label="pager">
      </nav>
      <script type="application/json" class="pagy-json">["nav","pagy-d132b15ba09f3e4f847de0a869486f19c77e4320",{"before":"\u003cul class=\"pagination\"\u003e\u003cli class=\"page-item prev disabled\"\u003e\u003ca href=\"#\" class=\"page-link\"\u003e\u0026lsaquo;\u0026nbsp;Prev\u003c/a\u003e\u003c/li\u003e","link":"\u003cli class=\"page-item\"\u003e\u003ca href=\"__pagy_page__\"  class=\"page-link\" \u003e__pagy_page__\u003c/a\u003e\u003c/li\u003e","active":"\u003cli class=\"page-item active\"\u003e\u003ca href=\"__pagy_page__\"  class=\"page-link\" \u003e__pagy_page__\u003c/a\u003e\u003c/li\u003e","gap":"\u003cli class=\"page-item gap disabled\"\u003e\u003ca href=\"#\" class=\"page-link\"\u003e\u0026hellip;\u003c/a\u003e\u003c/li\u003e","after":"\u003cli class=\"page-item next\"\u003e\u003ca href=\"2\"  class=\"page-link\" rel=\"next\" aria-label=\"next\"\u003eNext\u0026nbsp;\u0026rsaquo;\u003c/a\u003e\u003c/li\u003e\u003c/ul\u003e"},{"0":["1",2,3]},null]</script>
    </div>
   ` ;

  fixture.set(custom_html);
  

SyntaxError:JSON解析错误:预期中的“}”   http://localhost:3000/assets/pagy.self-9549c0030c0d4b8edb86c4946359bd81e7b71259f6f34f7c09f14e41a264cbe6.js?body=1?body=1   (第9行)

Rspec /茶匙茉莉花检测

  describe("addOnClick()", function(){
    beforeEach(function(){
      fixture.set(custom_html);
      console.log(fixture.el);
      PagyCustom  = new Helpers.Pagy.SearchForm("#custom-pagination");
      PagyCustom.init();

    })
  });

Pagy初始化功能:

Pagy.init = function(arg){
              var target   = arg instanceof Event || arg === undefined ? document : arg,
                  jsonTags = target.getElementsByClassName('pagy-json');
              for (var i = 0, len = jsonTags.length; i < len; i++) {
                var args = JSON.parse(jsonTags[i].innerHTML);
                Pagy[args.shift()].apply(null, args);
              }
            };

0 个答案:

没有答案