2020-03-13 17:10:38 +01:00
|
|
|
# frozen_string_literal: true
|
2016-08-17 12:49:52 +02:00
|
|
|
|
2023-02-24 17:26:55 +01:00
|
|
|
require 'test_helper'
|
|
|
|
|
2020-03-13 17:10:38 +01:00
|
|
|
class SettingsTest < ActionDispatch::IntegrationTest
|
2016-08-17 12:49:52 +02:00
|
|
|
# Called before every test method runs. Can be used
|
|
|
|
# to set up fixture information.
|
|
|
|
def setup
|
|
|
|
@admin = User.find_by(username: 'admin')
|
|
|
|
login_as(@admin, scope: :user)
|
|
|
|
end
|
|
|
|
|
|
|
|
test 'update setting value' do
|
|
|
|
put '/api/settings/fablab_name',
|
2020-03-13 17:10:38 +01:00
|
|
|
params: {
|
|
|
|
setting: {
|
|
|
|
value: 'Test Fablab'
|
|
|
|
}
|
2018-12-17 16:02:02 +01:00
|
|
|
}
|
2016-08-17 12:49:52 +02:00
|
|
|
assert_equal 200, response.status
|
2023-02-24 17:26:55 +01:00
|
|
|
assert_match Mime[:json].to_s, response.content_type
|
2016-08-17 12:49:52 +02:00
|
|
|
resp = json_response(response.body)
|
|
|
|
assert_equal 'fablab_name', resp[:setting][:name]
|
|
|
|
assert_equal 'Test Fablab', resp[:setting][:value]
|
2018-12-17 16:02:02 +01:00
|
|
|
|
|
|
|
# Check record
|
2022-03-23 16:55:38 +01:00
|
|
|
setting = Setting.find_by(name: resp[:setting][:name])
|
2018-12-17 16:02:02 +01:00
|
|
|
assert_not_nil setting, 'setting was not found in database'
|
|
|
|
assert_equal 2, setting.history_values.count, 'all historical values were not found'
|
|
|
|
assert_includes setting.history_values.map(&:value), 'Fab Lab de La Casemate', 'previous parameter was not saved'
|
|
|
|
assert_includes setting.history_values.map(&:value), 'Test Fablab', 'current parameter was not saved'
|
2016-08-17 12:49:52 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
test 'update setting with wrong name' do
|
|
|
|
put '/api/settings/does_not_exists',
|
2020-03-13 17:10:38 +01:00
|
|
|
params: {
|
|
|
|
setting: {
|
|
|
|
value: 'ERROR EXPECTED'
|
|
|
|
}
|
2018-12-17 16:02:02 +01:00
|
|
|
}
|
2016-08-17 12:49:52 +02:00
|
|
|
assert_equal 422, response.status
|
2023-02-24 17:26:55 +01:00
|
|
|
assert_match(/Name is not included in the list/, response.body)
|
2016-08-17 12:49:52 +02:00
|
|
|
end
|
|
|
|
|
2018-12-17 16:02:02 +01:00
|
|
|
test 'show setting' do
|
|
|
|
get '/api/settings/fablab_name'
|
|
|
|
|
|
|
|
assert_equal 200, response.status
|
2023-02-24 17:26:55 +01:00
|
|
|
assert_match Mime[:json].to_s, response.content_type
|
2018-12-17 16:02:02 +01:00
|
|
|
resp = json_response(response.body)
|
|
|
|
assert_equal 'fablab_name', resp[:setting][:name], 'wrong parameter name'
|
|
|
|
assert_equal 'Fab Lab de La Casemate', resp[:setting][:value], 'wrong parameter value'
|
|
|
|
end
|
2016-08-17 12:49:52 +02:00
|
|
|
end
|