
Богдан
03.09.2018
08:55:13
господа, а не подскажите, по Minitest, он params трансформирует в String?
у меня есть такой тест
test 'valid get top posts' do
body = { count: 5 }
post '/top_posts', params: body
assert_response :success
end
И на выходе он падает
Response body: {"errors":{"count":["must be an integer"]}}

Igor
03.09.2018
09:03:46
По идее, тут у тебя запрос уходит не в JSON, а в form-data. Там типов нет

Богдан
03.09.2018
09:23:21

Google


Darth
03.09.2018
09:37:59
Пытаюсь установить https://rubygems.org/gems/paraspec
gem 'paraspec', '~> 0.0.2'bundleBundler could not find compatible versions for gem "childprocess":
In snapshot (Gemfile.lock):
childprocess (= 0.8.0)
In Gemfile:
paraspec (~> 0.0.2) was resolved to 0.0.2, which depends on
childprocess (~> 0.9.0)
selenium-webdriver was resolved to 3.6.0, which depends on
childprocess (~> 0.5)
Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
---------------------------------------------bundle update childprocessBundler could not find compatible versions for gem "rspec-core":
In snapshot (Gemfile.lock):
rspec-core (= 3.5.4)
In Gemfile:
paraspec (~> 0.0.2) was resolved to 0.0.2, which depends on
rspec-core (~> 3.7.1)
rspec-rails (~> 3.5.2) was resolved to 3.5.2, which depends on
rspec-core (~> 3.5.0)
Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
---------------------------------------------bundle update rspec-coreBundler could not find compatible versions for gem "childprocess":
In snapshot (Gemfile.lock):
childprocess (= 0.8.0)
In Gemfile:
paraspec (~> 0.0.2) was resolved to 0.0.2, which depends on
childprocess (~> 0.9.0)
selenium-webdriver was resolved to 3.6.0, which depends on
childprocess (~> 0.5)
Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
Че делать?


rekero
03.09.2018
09:38:49
правила прочитай

mike
03.09.2018
09:39:37
довольно-таки неплохо

Богдан
03.09.2018
10:22:21
Error:
PostsControllerTest#test_valid_get_top_posts:
ActionDispatch::Http::Parameters::ParseError: 765: unexpected token at 'count=3'
test/controllers/posts_controller_test.rb:33:in `block in <class:PostsControllerTest>'

mike
03.09.2018
10:24:25
написано же что парсер еррор
проверь жсон
очевидно в нём косяк

Богдан
03.09.2018
10:31:49
Здесь ошибка появляется когда я добавляю в тесте headers: { 'Content-Type' => 'application/json' }
но по другому у меня почему-то count меняет тип

Евгений
03.09.2018
10:33:55
Потому что хедер ты поставил, а в тело у тебя передается хэш, а не строка.

Igor
03.09.2018
10:37:32
as: :json?
UPD: post …, as: :json

Zamira
03.09.2018
11:00:17
Всем спасибо, все же проще и лаконичнее оказалось магией. Не стоит кувалдой гвоздь забивать с этими сериалайзерами конкретно в этом случае)

Google

Богдан
03.09.2018
11:03:16
а не подскажите, что за хрень, создал фикстуру, и теперь в базе почему-то только она и отображается?

Zamira
03.09.2018
11:21:08
В дев базе тестируешь?)

Богдан
03.09.2018
11:21:15
если добавить в базу записей, а потом снова запустить тест, тогда в базе только фикстира

Zamira
03.09.2018
11:21:55
Тест база указана?
Разделять же надо

Богдан
03.09.2018
11:25:27

Zamira
03.09.2018
11:25:39

Богдан
03.09.2018
11:28:12
я так понимаю виной всему фикстура. которая после каждого запуска теста перезатирает базу, причем как-то странно перезатирает, например нарушается все ссылочная целосность

Zamira
03.09.2018
11:36:05

Igor
03.09.2018
11:36:08
Просто не стоит хранить что-то в тестовой базе и рассчитывать, что оно будет существовать между запусками
Нужны данные для тестов — генерируй в тесте

Zamira
03.09.2018
11:36:09
Так что все правильно
Прросто для теста надо свою базу

Богдан
03.09.2018
11:37:34
угу, сенкс уже понял ... просто никогда тесты не доводилось писать, вот как бы столкнулся с нюансами )))
теперь как бы вопрос, как через докер 2 базы заюзать )))

Felix
03.09.2018
11:42:53
так же как и свою
у тебя есть database.yml
создай в бд еще одну базу, для тестовых данных, и укажи ее

Богдан
03.09.2018
12:00:29

Google

Богдан
03.09.2018
12:01:30
очень было удобно, пока тесты не появились )))

Igor
03.09.2018
12:03:12
заюзай dotenv или подобные вещи, и в .env.test пропиши другой DATABASE_URL прост

mike
03.09.2018
12:03:38
а лучше сделай нормальный докерфайл

Богдан
03.09.2018
12:11:38
угу сенкс, ребята, выкрутился создал database.yml
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch('POSTGRES_POOL') { 5 } %>
timeout: 5000
host: <%= ENV['POSTGRES_HOST'] %>
port: <%= ENV['POSTGRES_PORT'] %>
username: <%= ENV['POSTGRES_USER'] %>
password: <%= ENV['POSTGRES_PASSWORD'] %>
development:
<<: *default
database: <%= ENV['POSTGRES_DB'] %>
test:
<<: *default
database: <%= "#{ENV['POSTGRES_DB']}_test" %>
production:
<<: *default
database: <%= ENV['POSTGRES_DB'] %>
а не подскажите, если мне например нужно пару десятков записей создать в тестовой базе, то все нужно через фикстуры делать?

Sunny
03.09.2018
12:13:41

Максим
03.09.2018
12:14:15
если для всех тестов за раз то seeds
если для одного двух то фабрики

Богдан
03.09.2018
12:14:28

mike
03.09.2018
12:14:34
сидс так себе решение, ибо база чистится каждый раз (по-хорошему) и либо сиды каждый раз прогонять либо создавать записи explicitly

Sunny
03.09.2018
12:14:48
хотя, не знаю, не разбираюсь в этом

mike
03.09.2018
12:15:05

Богдан
03.09.2018
12:15:18
не должны
как это не должны, у меня буквально часик назад в база для разработки затерлась из-за этого

Sunny
03.09.2018
12:15:28
(ты явно что-то делал не так)

Богдан
03.09.2018
12:15:53

mike
03.09.2018
12:16:03
для каких целей?

Богдан
03.09.2018
12:16:18

Google

Богдан
03.09.2018
12:16:30

mike
03.09.2018
12:17:09
используй фабрики (FactoryBot), с помощью них создавай свои записи
ля, сложно
ну, типа, надо тебе протестировать, скажем, что функция обновляет какую-либо запись
создал эту запись фабрикой, написал тест, всё
просто я не вижу реальных кейсов сидовать тестовую базу
я могу ошибаться

Admin
ERROR: S client not available

Богдан
03.09.2018
12:22:00

mike
03.09.2018
12:22:11
а я про фикстуры не говорил ничего

Богдан
03.09.2018
12:24:25
ну я вкурсе, просто в туториале по тестированию про них вычитал, вот и вопрос какой от них цымес?

mike
03.09.2018
12:25:30
ни разу не видел тестирования с использованием фикстур

Богдан
03.09.2018
12:26:05
сенкс, почитаем тогда про этого бота )))

Nikita
03.09.2018
12:26:06

mike
03.09.2018
12:26:15
я про реальные условия

Богдан
03.09.2018
12:26:19

mike
03.09.2018
12:26:30
зачем так изъёбываться, если есть прекрасный рспек?

Nikita
03.09.2018
12:26:33
А, тогда да. Аналогично

mike
03.09.2018
12:27:55
Фактори герл депрекейтед

Nikita
03.09.2018
12:28:38

Google

Nikita
03.09.2018
12:29:06
Я на эти ваши штуки про равенство не поведусь

mike
03.09.2018
12:29:30
Ну юзай фактори герл и охуевай от количества сообщений в стиле FactoryGirl is deprecated its highly recommended to switch to FactoryBot as soon as possible при вызовах фабрик)
А так да, одно и то же


Alexey
03.09.2018
13:10:40
Уже писал, но так и не нашел что могло бы понравиться... Пишу еще раз.
Всем привет! Есть предложение для разработчиков/начинающих стартаперов
Я – senior product дизайнер по enterprise/SaaS/веб/мобилкам (ui/ux).
Сейчас нахожусь в активном поиске работы уже несколько месяцев, потому что мне постоянно то компания, то проекты, то оплата не подходит. Но я не могу не заниматься дизайном и простаивать. Я делаю или бесплатно или очень дорого. Поэтому предложение:
Готов бесплатно выделять +-8 часов в неделю на разработку вашего продукта, начиная от полного проектирования по бизнес-процессам/идеям и заканчивая hi-fi мокапами. Вы разработчик, который хочет сделать проект для портфолио с крутым дизайном? Пишите мне. Вы стартапер, у которого нет бюджета на хороший дизайн? Пишите мне.
С вас какие-то гарантии, что проект будет в продакшене и отсутствие NDA.

Dmitriy
03.09.2018
13:13:41
Человек? Миф? Копипаста?

Кøе-ктø Геннадьевич
03.09.2018
13:18:46
зачем сеньору делать что-то бесплатно с неизвестным результатом
стартап и отсутствие NDA и ваш проект становится нашим


Igor
03.09.2018
13:19:54

Кøе-ктø Геннадьевич
03.09.2018
13:20:52
писать/дизайнить для опенсорса и искать в интернетах непонятные стартапы все таки не одно и то же

Igor
03.09.2018
13:25:10
вообще странно требование, чтоб не было NDA
разве что если для портфолио, но тогда это так и нужно писать

Anton
03.09.2018
13:40:13

Andy
03.09.2018
14:12:52


Alexey
03.09.2018
14:50:08
При чем обрезка фото и рэбит?
Делаю тестовое задание.
Цитирую.
При регистрации пользователь должен иметь возможность загрузить аватарку. Путь к аватарке передается в очередь RabbitMQ, откуда читается отдельным сервисом, который изменяет ее размер и сохраняет отдельно. Именно этот файл и должен быть использоваться в качестве Аватарки.
Вот такое задание) RabbitMQ я подключил гемом Bunny. Разобрался как сделать простую схему с Publisher и Consumer в один поток. Не понятно, каким сервисом картинку обрезать и как передать картинку в этот сервис.
Сейчас аватар обрезается и сохраняется в базе. Использовал гем CarrierWave

Nikita
03.09.2018
14:50:38
Путь к аватарке передается в очередь RabbitMQ, откуда читается отдельным сервисом, который изменяет ее размер и сохраняет отдельно
Есть гемчик, называется sneakers, он слушае рэбит и процессит воркером в зависимости от очереди.

Alexey
03.09.2018
14:53:50