Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # frozen_string_literal: true
- require "bundler/inline"
- install = false
- gemfile(install) do
- source "https://rubygems.org"
- gem 'rails', '5.2.2'
- end
- require "action_controller/railtie"
- class TestApp < Rails::Application
- config.root = __dir__
- config.eager_load = false
- config.session_store :cookie_store, key: "cookie_store_key"
- secrets.secret_key_base = "secret_key_base"
- config.logger = Logger.new($stdout)
- Rails.logger = config.logger
- end
- TestApp.initialize!
- TestApp.routes.draw{ resources :timetables, only: :update }
- class TimetablesController < ActionController::Base
- include Rails.application.routes.url_helpers
- wrap_parameters format: [:json, :xml]
- def update
- render json: timetable_params
- end
- def timetable_params
- my_params = params.require(:timetable).permit(:weekday,
- :is_only_private,
- :is_allow_forced,
- :from_time,
- :to_time,
- act_ids: [])
- # my_params[:act_ids] ||= params[:act_ids]
- my_params
- end
- end
- require "minitest/autorun"
- require "rack/test"
- class BugTest < Minitest::Test
- include Rack::Test::Methods
- def test_returns_success
- payload = {
- "id"=>"10172", "weekday"=>1, "is_only_private"=>false, "is_allow_forced"=>false,
- "from_time"=>"08:00", "to_time"=>"09:00",
- "act_ids"=>[10001, 10002],
- "customer_id"=>"10000", "consultation_id"=>"10000"
- }
- patch "/timetables/10172.json", payload.to_json, { 'CONTENT_TYPE' => 'application/json' }
- assert last_response.ok?
- puts "resp body: #{last_response.body}"
- resp = JSON.parse(last_response.body)
- assert_includes(resp.keys, "act_ids")
- end
- private def app
- Rails.application
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement