Ошибка входа в Spree - PullRequest
       14

Ошибка входа в Spree

0 голосов
/ 29 сентября 2018

Я пытаюсь создать тест для админки.Но это не удается, пока программа пытается войти в систему.

Сбои:

1) Вход при входе продуктов работает правильно Ошибка / ошибка: ожидаемо (страница) .to have_content ("Успешный вход в систему")

ожидается, чтонайти текст «Успешный вход в систему» ​​в разделе «Вход \ nВсе отделы \ nДомой \ nКарта: (пусто) \ n \ nНеверный адрес электронной почты или пароль. \ nВойдите в систему как существующий клиент \ nПомяните меня \ ни Создать новую учетную запись | Забыли пароль?"# ./spec/features/home_spec.rb:14:in `блок (2 уровня) в '

Пароль и адрес электронной почты верны для администратора.Я нашел решения в других статьях, например, добавление конфигурации в капибару, но она все равно не работает.

spec_helper

require 'capybara/rspec'
require 'rails_helper'
require 'spree/testing_support/controller_requests'
require 'capybara/rails'

Capybara.app_host = "http://localhost:3000"
Capybara.server_host = "localhost"
Capybara.server_port = "3000"

_spec.rb

require "spec_helper"

RSpec.describe 'Visit products' do
    it 'login works correctly' do
        visit spree.admin_path
        fill_in "spree_user[email]", with: "piotr.wydrzycki@yahoo.com"
    fill_in "spree_user[password]", with: "password"
    click_button Spree.t(:login)
        expect(page).to have_content("Logged in successfully")
    end
end

1 Ответ

0 голосов
/ 30 сентября 2018

Поскольку на странице отображается «Неверный адрес электронной почты или пароль», либо адрес электронной почты или пароль неверны, либо пользователь для теста создается неправильно.Поскольку вы не показываете создание тестовых пользователей в своем тесте, скорее всего, их нет.При запуске в тестовом режиме приложение не использует вашу базу данных разработки, оно имеет свою собственную базу данных, и вам нужно создать все объекты (например, пользователей), которые, как вы ожидаете, существуют для теста.Вы можете сделать это, используя приборы или что-то вроде factory_bot для создания пользователей перед каждым тестом.

Кроме того, в вашей ситуации не нужно устанавливать server_host, server_port или app_host.

...