mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-02-20 14:54:15 +01:00
(bug) always show machine availability in calender if machine module is inactive
This commit is contained in:
parent
f47440c85a
commit
bcd76ee6d5
@ -11,9 +11,9 @@ class Availabilities::PublicAvailabilitiesService
|
||||
level = in_same_day(window[:start], window[:end]) ? 'slot' : 'availability'
|
||||
service = Availabilities::AvailabilitiesService.new(@current_user, level)
|
||||
|
||||
machines_slots = service.machines(Machine.where(id: ids[:machines]), @current_user, window)
|
||||
spaces_slots = service.spaces(Space.where(id:ids[:spaces]), @current_user, window)
|
||||
trainings_slots = service.trainings(Training.where(id: ids[:trainings]), @current_user, window)
|
||||
machines_slots = Setting.get('machines_module') ? service.machines(Machine.where(id: ids[:machines]), @current_user, window) : []
|
||||
spaces_slots = Setting.get('spaces_module') ? service.spaces(Space.where(id: ids[:spaces]), @current_user, window) : []
|
||||
trainings_slots = Setting.get('trainings_module') ? service.trainings(Training.where(id: ids[:trainings]), @current_user, window) : []
|
||||
events_slots = events ? service.events(Event.all, @current_user, window) : []
|
||||
|
||||
[].concat(trainings_slots).concat(events_slots).concat(machines_slots).concat(spaces_slots)
|
||||
|
9
test/fixtures/history_values.yml
vendored
9
test/fixtures/history_values.yml
vendored
@ -860,3 +860,12 @@ history_value_90:
|
||||
updated_at: '2022-10-26 12:46:16.125400000 Z'
|
||||
footprint:
|
||||
invoicing_profile_id: 1
|
||||
|
||||
history_value_91:
|
||||
id: 91
|
||||
setting_id: 90
|
||||
value: 'true'
|
||||
created_at: '2022-12-20 14:38:40.000421'
|
||||
updated_at: '2022-12-20 14:38:40.000421'
|
||||
footprint:
|
||||
invoicing_profile_id: 1
|
||||
|
6
test/fixtures/settings.yml
vendored
6
test/fixtures/settings.yml
vendored
@ -526,3 +526,9 @@ setting_89:
|
||||
name: accounting_Product_code
|
||||
created_at: 2022-10-26 12:46:16.125400000 Z
|
||||
updated_at: 2022-10-26 12:46:16.125400000 Z
|
||||
|
||||
setting_90:
|
||||
id: 90
|
||||
name: machines_module
|
||||
created_at: 2020-04-15 14:38:40.000421500 Z
|
||||
updated_at: 2020-04-15 14:38:40.000421500 Z
|
||||
|
@ -55,7 +55,7 @@ module Availabilities
|
||||
start_date = DateTime.current.utc.strftime('%Y-%m-%d')
|
||||
end_date = 7.days.from_now.utc.strftime('%Y-%m-%d')
|
||||
tz = Time.zone.tzinfo.name
|
||||
get "/api/availabilities?start=#{start_date}&end=#{end_date}&timezone=#{tz}&_=1487169767960"
|
||||
get "/api/availabilities?start=#{start_date}&end=#{end_date}&timezone=#{tz}&_=1487169767960&#{all_machines}"
|
||||
|
||||
# Check response format & status
|
||||
assert_equal 200, response.status
|
||||
@ -66,7 +66,7 @@ module Availabilities
|
||||
assert_not_empty availabilities, 'no availabilities were found'
|
||||
assert_not_nil availabilities[0], 'first availability was unexpectedly nil'
|
||||
|
||||
assert_not availabilities.map { |a| a[:available_type] }.include?('space'), 'unexpected space availability instead that it was disabled'
|
||||
assert_not availabilities.pluck(:available_type).include?('space'), 'unexpected space availability instead that it was disabled'
|
||||
|
||||
# re-enable spaces
|
||||
Setting.set('spaces_module', true)
|
||||
@ -77,7 +77,7 @@ module Availabilities
|
||||
start_date = DateTime.current.utc.strftime('%Y-%m-%d')
|
||||
end_date = 7.days.from_now.utc.strftime('%Y-%m-%d')
|
||||
tz = Time.zone.tzinfo.name
|
||||
get "/api/availabilities?start=#{start_date}&end=#{end_date}&timezone=#{tz}&_=1487169767960"
|
||||
get "/api/availabilities?start=#{start_date}&end=#{end_date}&timezone=#{tz}&_=1487169767960&#{all_spaces}"
|
||||
|
||||
# Check response format & status
|
||||
assert_equal 200, response.status
|
||||
@ -88,7 +88,7 @@ module Availabilities
|
||||
assert_not_empty availabilities, 'no availabilities were found'
|
||||
assert_not_nil availabilities[0], 'first availability was unexpectedly nil'
|
||||
|
||||
assert availabilities.map { |a| a[:available_type] }.include?('space'), 'space availability not found instead that it was enabled'
|
||||
assert availabilities.pluck(:available_type).include?('space'), 'space availability not found instead that it was enabled'
|
||||
end
|
||||
|
||||
test 'create availabilities' do
|
||||
@ -126,10 +126,10 @@ module Availabilities
|
||||
assert_not_nil availability[:id], 'availability ID was unexpectedly nil'
|
||||
|
||||
# Check the slots
|
||||
assert_equal (availability[:start_at].to_datetime + availability[:slot_duration].minutes * 4).iso8601,
|
||||
assert_equal (availability[:start_at].to_datetime + (availability[:slot_duration].minutes * 4)).iso8601,
|
||||
availability[:end_at],
|
||||
'expected end_at = start_at + 4 slots of 90 minutes'
|
||||
assert_equal (slots_count + 4 * 3), Slot.count, 'expected (4*3) slots of 90 minutes were created'
|
||||
assert_equal (slots_count + (4 * 3)), Slot.count, 'expected (4*3) slots of 90 minutes were created'
|
||||
assert_equal 90.minutes, Availability.find(availability[:id]).slots.first.duration
|
||||
|
||||
# Check the recurrence
|
||||
@ -137,5 +137,19 @@ module Availabilities
|
||||
availability[:end_date].to_datetime.utc.to_date,
|
||||
'expected end_date = start_at + 2 weeks'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def all_machines
|
||||
Machine.all.map { |m| "m%5B%5D=#{m.id}" }.join('&')
|
||||
end
|
||||
|
||||
def all_trainings
|
||||
Training.all.map { |m| "t%5B%5D=#{m.id}" }.join('&')
|
||||
end
|
||||
|
||||
def all_spaces
|
||||
Space.all.map { |m| "s%5B%5D=#{m.id}" }.join('&')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -3,11 +3,11 @@
|
||||
require 'test_helper'
|
||||
|
||||
class Availabilities::AsPublicTest < ActionDispatch::IntegrationTest
|
||||
test 'get public machines availabilities' do
|
||||
test 'get public machines availabilities if machines module is active' do
|
||||
start_date = DateTime.current.to_date
|
||||
end_date = (DateTime.current + 7.days).to_date
|
||||
|
||||
get "/api/availabilities/public?start=#{start_date.to_s}&end=#{end_date.to_s}&timezone=Europe%2FParis&#{all_machines}"
|
||||
get "/api/availabilities/public?start=#{start_date}&end=#{end_date}&timezone=Europe%2FParis&#{all_machines}"
|
||||
|
||||
# Check response format & status
|
||||
assert_equal 200, response.status
|
||||
@ -24,11 +24,27 @@ class Availabilities::AsPublicTest < ActionDispatch::IntegrationTest
|
||||
end
|
||||
end
|
||||
|
||||
test 'get anymore machines availabilities if machines module is inactive' do
|
||||
Setting.set('machines_module', false)
|
||||
start_date = DateTime.current.to_date
|
||||
end_date = (DateTime.current + 7.days).to_date
|
||||
|
||||
get "/api/availabilities/public?start=#{start_date}&end=#{end_date}&timezone=Europe%2FParis&#{all_machines}"
|
||||
|
||||
# Check response format & status
|
||||
assert_equal 200, response.status
|
||||
assert_equal Mime[:json], response.content_type
|
||||
|
||||
# Check the correct availabilities was returned
|
||||
availabilities = json_response(response.body)
|
||||
assert_empty availabilities
|
||||
end
|
||||
|
||||
test 'get public trainings availabilities' do
|
||||
start_date = DateTime.current.to_date
|
||||
end_date = (DateTime.current + 7.days).to_date
|
||||
|
||||
get "/api/availabilities/public?start=#{start_date.to_s}&end=#{end_date.to_s}&timezone=Europe%2FParis&#{all_trainings}"
|
||||
get "/api/availabilities/public?start=#{start_date}&end=#{end_date}&timezone=Europe%2FParis&#{all_trainings}"
|
||||
|
||||
# Check response format & status
|
||||
assert_equal 200, response.status
|
||||
@ -49,7 +65,7 @@ class Availabilities::AsPublicTest < ActionDispatch::IntegrationTest
|
||||
start_date = DateTime.current.to_date
|
||||
end_date = (DateTime.current + 7.days).to_date
|
||||
|
||||
get "/api/availabilities/public?start=#{start_date.to_s}&end=#{end_date.to_s}&timezone=Europe%2FParis&#{all_spaces}"
|
||||
get "/api/availabilities/public?start=#{start_date}&end=#{end_date}&timezone=Europe%2FParis&#{all_spaces}"
|
||||
|
||||
# Check response format & status
|
||||
assert_equal 200, response.status
|
||||
@ -70,7 +86,7 @@ class Availabilities::AsPublicTest < ActionDispatch::IntegrationTest
|
||||
start_date = 8.days.from_now.to_date
|
||||
end_date = 16.days.from_now.to_date
|
||||
|
||||
get "/api/availabilities/public?start=#{start_date.to_s}&end=#{end_date.to_s}&timezone=Europe%2FParis&evt=true"
|
||||
get "/api/availabilities/public?start=#{start_date}&end=#{end_date}&timezone=Europe%2FParis&evt=true"
|
||||
|
||||
# Check response format & status
|
||||
assert_equal 200, response.status
|
||||
|
Loading…
x
Reference in New Issue
Block a user