2015-10-08 2 views
0

У меня возникли проблемы с файлом с capybara.Присоединение файла с capybara

У меня есть модель клиента

class Client 
    mount_uploader :logo, ClientUploader 
    validates :name, :logo, presence: true 
end 

На моем взгляде, у меня есть форма отделена в закладки, логотип на вкладке СМИ и он переключился на JavaScript поэтому я использую полтергейст яваскрипт драйвера.

it "should allow a client to be created", js: true do 
    click_link "New Client" 
    fill_in "Name", with: "My Client" 
    click_link "Media" 
    attach_file("client_logo", File.join(Rails.root, "spec/support/images/landscape_image.jpg")) 
    click_button "Create Client" 
    expect(page).to have_content("Client was successfully created.") 
end 

Контроллер

class ClientsController 
    def create 
    @client = Client.new(client_params) 
    if @client.save 
     redirect_to clients_url, notice: 'Client was successfully created.' 
    else 
     render :new 
    end 
    end 

    def client_params 
    params.require(:client).permit(:name, :logo, :remote_logo_url, :logo_cache, :website, :display) 
    end 
end 

Я использовал Launchy save_and_open_page и попадет на нужную вкладку, так что поле есть (капибары будут жаловаться, если бы не было), и путь изображения правильно (опять же, capybara жалуется, если это не так). Тем не менее, я получаю следующую ошибку:

1) Creating A Client should allow a client to be created 
    Failure/Error: expect(page).to have_content("Client was successfully created.") 
     expected to find text "Client was successfully created." in "MANAGE YOUR CONTENT Clients Site Navigation Site Navigation Stored Images Stored Documents Site Settings View Website Manage Administrators Logout New Client SEE ALL CLIENTS 1 error prohibited this client from being saved: Logo can't be blank ContentMediaSettings Name Website Site Structure Stored Documents Stored Images" 

Я в тупике, у кого есть идеи?

+0

Какая версия phantomjs вы используя полтергейст? –

+0

2.0.1-development, я только что отправился на сайт phantomjs и загрузил ссылку, связанную с ней на дому. Спасибо, даже не подумал, что это может быть проблемой, но я вижу, что это известная проблема с 2.0. –

ответ

1

Загрузка файла не работает в полтергейсте при использовании с PhantomJS 2.0.0. Он исправлен в 2.0.1 (если он когда-либо выпущен). Если вы используете 2.0.0, у вас есть несколько вариантов, вернитесь к 1.9.8, создайте собственную копию 2.0.1 или замените на использование селена или capybara-WebKit для этих тестов.

+0

Спасибо, много. Я даже не считал, что фантомы могут быть проблемой –

Смежные вопросы