Advertisement
Guest User

Untitled

a guest
Jun 14th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.94 KB | None | 0 0
  1. # frozen_string_literal: true
  2.  
  3. require "bundler/inline"
  4.  
  5. install = false
  6. gemfile(install) do
  7.   source "https://rubygems.org"
  8.   gem 'rails', '5.2.2'
  9. end
  10.  
  11. require "action_controller/railtie"
  12.  
  13. class TestApp < Rails::Application
  14.   config.root = __dir__
  15.   config.eager_load = false
  16.   config.session_store :cookie_store, key: "cookie_store_key"
  17.   secrets.secret_key_base = "secret_key_base"
  18.  
  19.   config.logger = Logger.new($stdout)
  20.   Rails.logger  = config.logger
  21. end
  22.  
  23. TestApp.initialize!
  24. TestApp.routes.draw{ resources :timetables, only: :update }
  25.  
  26.  
  27. class TimetablesController < ActionController::Base
  28.   include Rails.application.routes.url_helpers
  29.   wrap_parameters format: [:json, :xml]
  30.  
  31.   def update
  32.     render json: timetable_params
  33.   end
  34.  
  35.   def timetable_params
  36.     my_params = params.require(:timetable).permit(:weekday,
  37.                                                   :is_only_private,
  38.                                                   :is_allow_forced,
  39.                                                   :from_time,
  40.                                                   :to_time,
  41.                                                   act_ids: [])
  42.     # my_params[:act_ids] ||= params[:act_ids]
  43.     my_params
  44.   end
  45. end
  46.  
  47. require "minitest/autorun"
  48. require "rack/test"
  49.  
  50. class BugTest < Minitest::Test
  51.   include Rack::Test::Methods
  52.  
  53.   def test_returns_success
  54.     payload = {
  55.       "id"=>"10172", "weekday"=>1, "is_only_private"=>false, "is_allow_forced"=>false,
  56.       "from_time"=>"08:00", "to_time"=>"09:00",
  57.       "act_ids"=>[10001, 10002],
  58.       "customer_id"=>"10000", "consultation_id"=>"10000"
  59.     }
  60.    
  61.     patch "/timetables/10172.json", payload.to_json, { 'CONTENT_TYPE' => 'application/json' }
  62.  
  63.     assert last_response.ok?
  64.     puts "resp body: #{last_response.body}"
  65.     resp = JSON.parse(last_response.body)
  66.  
  67.     assert_includes(resp.keys, "act_ids")
  68.   end
  69.  
  70.   private def app
  71.     Rails.application
  72.   end
  73. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement