@rubylang

Страница 921 из 1684
Evgeny
06.03.2017
04:44:23


Все ок тут, а вот этот render json не попадает в response

Везде норм тесты сделал,а тут какая то непонятка блин

Google
Evgeny
06.03.2017
04:50:45
есть еще в тестах параметры as: :json и xhr: true, если их добавить тоже ничего не меняется

Хотя json тут ни к чему, посмотрел доки

Victor
06.03.2017
05:23:24
Ну да, json для формата, xhr для аякса

Evgeny
06.03.2017
05:27:22
В общем я все перегуглил, я хз) В браузере response корректный, тут nil

Victor
06.03.2017
05:38:54
сделай describe PhotosController do render_views ...

Evgeny
06.03.2017
05:43:22
Там нет вьюх)

Всего 2 экшена create, destroy

У меня просто он отвечает за загрузку картинок из гема drop_zone

Наверняка че то где то не так делаю) А еще это рельсы 5.0.0.1

Victor
06.03.2017
06:05:06
Ты попробуй, может сработает ))

Vasiliy
06.03.2017
06:15:13
responce.body уже советовали?

и попробуй в post format укажи

Victor
06.03.2017
06:24:55
не нужно ни то, ни другое

Google
Vasiliy
06.03.2017
06:27:24
и вот же http://guides.rubyonrails.org/testing.html#testing-xhr-ajax-requests

Victor
06.03.2017
06:28:28
это не яакс, а простой запрос, и ты кидаешь доку на минитест, а это рспек

Vasiliy
06.03.2017
06:29:05
метод post из минитеста вроде как

Victor
06.03.2017
06:29:39
post есть и там, и там

Vasiliy
06.03.2017
06:29:50
из ActionController::TestCase

Victor
06.03.2017
06:30:44
но в rspec response, а в минитест @response

Vasiliy
06.03.2017
06:32:11
так там attr_reader

attr_reader :response, :request

response есть в view_example_group, но он депрекейтед и ссылается на rendered из ActionView::TestCase и вот это уже точно не то

ну я могу ошибаться

Victor
06.03.2017
06:39:54
**Note:** To encourage more isolated testing, views are not rendered by default in controller specs. If you are verifying discrete view logic, use a [view spec](#view-specs). If you are verifying the behaviour of a controller and view together, consider a [request spec](#request-specs). You can use [render\_views](https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs/render-views) if you must verify the rendered view contents within a controller spec, but this is not recommended.

для request спек действительно подтягивают ActionDispatch::Integration::Runner

Vasiliy
06.03.2017
06:41:26
вообще дебагером сейчас скакнул в get и да, ActionController::TestCase попал

Victor
06.03.2017
06:43:45
тогда ты прав насчет ActionController::TestCase, но у Жени с чем-то другим проблема

я подозреваю, что вот с этим `views are not rendered by default in controller specs`

Vasiliy
06.03.2017
06:45:12
вообще я думаю надо и render_views и post ...., xhr: true указать, чтобы контроллер знал что надо нужный формат рендерить(хотя у него рендер только в одном формате, так что скорее не надо)

Evgeny
06.03.2017
06:46:12
Dьюхи не робят тут, т.к. это request тесты

Хотя робят если прописать аргументы

xhr я делал

все ровно тоже самое

Google
Vasiliy
06.03.2017
06:46:43
эм... реквест тесты по моему просто элиас на контроллер тесты

Evgeny
06.03.2017
06:46:55
Ну да там типа фул стэк

Victor
06.03.2017
06:47:10
зачем xhr? это просто ставит хедер в реквесте специфический, толку от него здесь?

Evgeny
06.03.2017
06:47:22
Я в нете с десяток примеров таких же нашел и у них респонс приходит

Victor
06.03.2017
06:47:45
а ты поставил render_views?

Vasiliy
06.03.2017
06:47:51
да, с xhr я чет гусей погнал, один же рендер

Victor
06.03.2017
06:48:02
ну

тут ни формат, ни xhr не нужны

Evgeny
06.03.2017
06:48:45
Victor
06.03.2017
06:49:13
а версия rspec какая?

Evgeny
06.03.2017
06:49:13
render_template аргументы требует

Че ему имя вьюхи надо?

Evgeny
06.03.2017
06:49:21
3.5

Вообще ни с чем не было проблем, вот с render json уже весь мозг сломал

В остальном уже 90+ тестов всяких

Щас проведу эксперимент без всяких json

Victor
06.03.2017
06:51:31
https://www.relishapp.com/rspec/rspec-rails/v/3-5/docs/controller-specs/render-views

вообще, должно работать, попробуй код из доки со своим сравнить

Vasiliy
06.03.2017
06:52:31
рендер_темплате по моему вообще не то, оно для вьюх .html и прочего

Victor
06.03.2017
06:53:02
да, рендер_темплейт не нужен

Google
Victor
06.03.2017
06:53:18
может type забыл указать?

Щас проведу эксперимент без всяких json
покажи весь файл, чего мы гадаем-то

Vasiliy
06.03.2017
06:53:54
и путь к нему

Victor
06.03.2017
06:54:12
путь на скриншоте есть

Admin
ERROR: S client not available

Victor
06.03.2017
06:54:42
spec/requests/photos_spec.rb

Evgeny
06.03.2017
06:55:18
Ща 5 сек, проверю еще и гист кину

Victor
06.03.2017
06:55:41
по хорошему, должно быть spec/controllers/photos_controller_spec.rb

Vasiliy
06.03.2017
06:57:42
вообще в байбаге на скрине где пост слал можешь local_variables вывести и посмотреть че у тебя там есть или появилось

что там в итоге с response то?

Evgeny
06.03.2017
07:29:00
https://gist.github.com/EvgenyKungurov/181bf57cc9b5e6b6eed686b2419c1e4b

на работе кипишь, поэтому торможу

Alex
06.03.2017
07:30:20
А есть для миддлмана какой-то другой гем окромя middleman-deploy?
а кто мешает добавить недостающий функционал?

добавил дополнительные таски для капистраны и все, даже форкать не надо.

Victor
06.03.2017
08:02:47
require 'rails_helper' RSpec.describe PhotosController, type: :controller do describe "POST #create" do it "returns http success" do post :create expect(response).to have_http_status(:success) json = JSON.parse(response.body) expect(json['message']).to eql 'Created!' end вот так у меня все работает без render_views и прочих костылей

логин юзера можно через дивайсовский хелпер сделать

Evgeny
06.03.2017
08:04:13
Это если контроллерный тест, а реквест не сможешь проверить?

Victor
06.03.2017
08:05:27
def create render json: {message: 'Created!'} end

Google
Evgeny
06.03.2017
08:05:48
Щас сделаю как у тебя

Victor
06.03.2017
08:08:10
Это если контроллерный тест, а реквест не сможешь проверить?
require 'rails_helper' RSpec.describe 'Photos', type: :request do describe "POST #create" do it "returns http success" do post photos_create_path expect(response).to have_http_status(:success) json = JSON.parse(response.body) expect(json['message']).to eql 'Created!' end end end

Di
06.03.2017
08:13:38
Братцы, а подскажите про такую конструкцию: ::OAuth2::Client.new( @key, @secret, defaults.merge!(options) ) Непонятно про вот эти два двоеточия в начале, как их интерпретировать. Я предположил что впереди надо подставить текущий модуль, типа текущий неймспейс. Но мы итак внутри модуля Oauth2 Я встретил эту конструкцию внутри такого неймспейса: module Sorcery module Protocols module Oauth2

Прикол в том, что Oauth2::Client класса такого не существует, не могу найти его. Это код гема sorcery

Di
06.03.2017
08:20:20
Ок, спс. А top-level прям совсем топ левел? В основном коде rails приложения?

ojab
06.03.2017
08:21:26
константа в top-level namespace может быть откуда угодно определена

Di
06.03.2017
08:24:07
да? А как это делается? Ведь если я просто определаю константу в модуле, то она доступна только из модуля. А запулить ее в топ-девел как? ::Foo = bar - так что ли?

*фигню написал про доступна только из модуля

Имел ввиду что доступ к ней будет через модуль.

ojab
06.03.2017
08:26:36
ну можно и ::Foo = :bar. Но вообще если определение класса class Whatever; end не внутри модуля — оно создаст константу Whatever в top-level namespace

(классы и модули — это константы, если непонятно)

и ищутся по неймспейсам рубями как обычные константы

Страница 921 из 1684