Pagy Gem / Teaspoon Testing: SyntaxError: ошибка синтаксического анализа JSON: ожидается '}' в - PullRequest
0 голосов
/ 12 июня 2019

Я использую Teaspoon-Jasmine и создаю прибор для проверки моих навигационных ссылок Pagy Pagination. Я скопировал выходной 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 / Teaspoon-Jasmine

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

    })
  });

Функция Pagy init:

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);
              }
            };
...