From 34e8ffeffdcae8e34df805f29b710438966668be Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 15 Feb 2017 16:22:19 +0100 Subject: [PATCH] test space availabilities api --- test/fixtures/availabilities.yml | 12 ++++- test/fixtures/spaces.yml | 10 +++- test/fixtures/spaces_availabilities.yml | 7 ++- .../availabilities/as_admin_test.rb | 46 ++++++++++++++++++- 4 files changed, 71 insertions(+), 4 deletions(-) diff --git a/test/fixtures/availabilities.yml b/test/fixtures/availabilities.yml index ba934f8ba..3a2543181 100644 --- a/test/fixtures/availabilities.yml +++ b/test/fixtures/availabilities.yml @@ -168,4 +168,14 @@ availability_17: created_at: 2016-04-04 15:44:04.023557000 Z updated_at: 2016-04-04 15:44:04.023557000 Z nb_total_places: - destroying: false \ No newline at end of file + destroying: false + +availability_18: + id: 18 + start_at: <%= 2.days.from_now.utc.change({hour: 8}).strftime('%Y-%m-%d %H:%M:%S.%9N Z') %> + end_at: <%= 2.days.from_now.utc.change({hour: 12}).strftime('%Y-%m-%d %H:%M:%S.%9N Z') %> + available_type: space + created_at: 2017-02-15 15:53:35.154433000 Z + updated_at: 2017-02-15 15:53:35.154433000 Z + nb_total_places: 5 + destroying: false diff --git a/test/fixtures/spaces.yml b/test/fixtures/spaces.yml index 6fac8be98..242041286 100644 --- a/test/fixtures/spaces.yml +++ b/test/fixtures/spaces.yml @@ -1 +1,9 @@ -# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html +space_1: + id: 1 + name: Atelier Bois + default_places: 10 + description: Devenez un véritable menuisier à l'espace atelier bois de votre fablab + slug: atelier-bois + created_at: 2017-02-15 15:55:04.123928000 Z + updated_at: 2017-02-15 15:55:04.123928000 Z + characteristics: Scie à chantourner, rabot, dégauchisseuse, chanfreineuse et pyrograveur diff --git a/test/fixtures/spaces_availabilities.yml b/test/fixtures/spaces_availabilities.yml index 6fac8be98..3755bbe86 100644 --- a/test/fixtures/spaces_availabilities.yml +++ b/test/fixtures/spaces_availabilities.yml @@ -1 +1,6 @@ -# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html +spaces_availability_1: + id: 1 + space_id: 1 + availability_id: 18 + created_at: 2017-02-15 15:59:08.892741000 Z + updated_at: 2017-02-15 15:59:08.892741000 Z \ No newline at end of file diff --git a/test/integration/availabilities/as_admin_test.rb b/test/integration/availabilities/as_admin_test.rb index 46c214499..50a046de1 100644 --- a/test/integration/availabilities/as_admin_test.rb +++ b/test/integration/availabilities/as_admin_test.rb @@ -40,6 +40,50 @@ module Availabilities assert_not a[:start] < DateTime.now, 'retrieved a slot in the past' end end -end + + test 'get calendar availabilities without spaces' do + # disable spaces in application + Rails.application.secrets.fablab_without_spaces = true + + # this simulates a fullCalendar (v2) call + start_date = DateTime.now.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" + + # 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_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' + + # re-enable spaces to keep tests ENV-safe + Rails.application.secrets.fablab_without_spaces = false + end + + test 'get calendar availabilities with spaces' do + # this simulates a fullCalendar (v2) call + start_date = DateTime.now.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" + + # 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_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' + end + end end