Капибара, тестирующая функции editablegrid, не работает

Используя editablegrid.net. Очень нравится макет и функциональность. Единственная проблема - тестирование функций. Кажется, что ничего не работает в капибаре - на снимке страницы не отображается содержимое страницы для фактической сетки, сопоставители не видят содержимое, отображаемое в js.

Я должен использовать более старый фантом (v1.9.2), так как поддержка для капибары, по-видимому, пока отсутствует на Mac OS X.

Кто-нибудь испытывал удачу?

Вещи пытались

  • обновление страницы: page.driver.bro wser.navigate.refresh
  • Убедитесь, что включен TurboLinks событий для загрузки
  • пробовал селен и полтергейст

Подробности настройки

версии

        rails 4.1.0
        capybara (2.9.1)
        rspec (3.5.0)
        phantomjs 192

        selenium-webdriver (2.53.4)

        poltergeist (1.5.1)
          capybara (~> 2.1)
          cliver (~> 0.3.1)
          multi_json (~> 1.0)
          websocket-driver (>= 0.2.0)

    $ phantomjs -v
    1.9.2

ОБНОВЛЕНИЕ обновленных версий

   $ phantomjs -v
    2.1.1
    $ gem list | grep polter
    poltergeist (1.10.0)
    $ selenium-webdriver (2.53.4)

Однако, когда я делаю простой тест

      visit 'address_books/'+user.address_book.id.to_s
      page.save_screenshot("file1.png", :full => true)
      sleep 4.seconds # just in case the delayed redraw takes time
      page.save_screenshot("file2.png", :full => true)
      expect(page).to have_content(/Person A.*2 8888 9999.*home/)

где эта страница содержит editablegrid это прекрасно работает в процессе разработки (см. пример снимка экрана ( http://imgbox.com/rqwx1vHe)) не отображается при сохранении снимков экрана ( http://imgbox.com/t1CG6hQa)

другие заметки

  • Пробовал селен тоже, такая же проблема: понятно, что сетка не отображается.
  • Я использовал загрузку турбо ссылок для события, чтобы вызвать загрузку страницы.

код сетки

                  var editableGrid = null;
        $(document).on('turbolinks:load', function() {
                        editableGrid = new EditableGrid("AddressBookGridJSON"); 
                        editableGrid.tableLoaded = function() { this.renderGrid("tablecontent", "testgrid"); };
                        editableGrid.loadJSON('/address_books.json');
                        // $.getJSON('/address_books.json', function(json) {
                        //     editableGrid.load({"metadata": json.metadata,              "data": json.data});
                        //     console.log(editableGrid);
                        // });
                    }); 

ОБНОВЛЕНИЕ 2

index.json.jbuilder

        json.set! :metadata do
        json.array! @address_book.generate_view_table_meta_data
        end

        json.set! :data do
            json.array! @contacts do |contact|
              json.id contact.id
                  json.set! :values do
                      json.name contact.name
                      json.phone_number contact.get_presentation_number
                      json.phone_type contact.get_humanize_phone_type
                      json.action contact.get_url_to_view_delete
                  end
            end
        end

ОБНОВЛЕНИЕ 3

Код очистителябазы данных загружен

требуется 'database_cleaner' RSpec.configure do |config| config.before(:each) do DatabaseCleaner.clean_with(: усечение) end

      config.before(:each) do
        #DatabaseCleaner.strategy = :transaction
        # if we use transaction the data is NOT saved during the actual rspec scenario. we must have commit
        # during rspec so external compare processs can access data
        # TODO make this conditional based on the compare plans process only

        # tests will not have :nontransactional defined except compareplans testing
        if self.class.metadata[:nontransactional]
          DatabaseCleaner.strategy = :truncation
        else
          DatabaseCleaner.strategy = :transaction
        end
      end

      config.before(:each, :js => true) do
        DatabaseCleaner.strategy = :truncation
      end

      config.before(:each) do
        DatabaseCleaner.start
      end

      config.append_after(:each) do
        DatabaseCleaner.clean
      end
    end

0 ответов

Другие вопросы по тегам