aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/time_tables_controller.rb2
-rw-r--r--spec/controllers/time_tables_controller_spec.rb29
2 files changed, 30 insertions, 1 deletions
diff --git a/app/controllers/time_tables_controller.rb b/app/controllers/time_tables_controller.rb
index 0707b9648..0dcadad1e 100644
--- a/app/controllers/time_tables_controller.rb
+++ b/app/controllers/time_tables_controller.rb
@@ -36,7 +36,6 @@ class TimeTablesController < ChouetteController
def create
tt_params = time_table_params
if tt_params[:calendar_id] && tt_params[:calendar_id] != ""
- %i(monday tuesday wednesday thursday friday saturday sunday).map { |d| tt_params[d] = true }
calendar = Calendar.find(tt_params[:calendar_id])
tt_params[:calendar_id] = nil if tt_params.has_key?(:dates_attributes) || tt_params.has_key?(:periods_attributes)
end
@@ -45,6 +44,7 @@ class TimeTablesController < ChouetteController
@time_table = created_from ? created_from.duplicate : Chouette::TimeTable.new(tt_params)
if calendar
+ @time_table.int_day_types = calendar.int_day_types
calendar.dates.each_with_index do |date, i|
@time_table.dates << Chouette::TimeTableDate.new(date: date, position: i, in_out: true)
end
diff --git a/spec/controllers/time_tables_controller_spec.rb b/spec/controllers/time_tables_controller_spec.rb
new file mode 100644
index 000000000..85f2c10e4
--- /dev/null
+++ b/spec/controllers/time_tables_controller_spec.rb
@@ -0,0 +1,29 @@
+RSpec.describe TimeTablesController, :type => :controller do
+ login_user
+
+ describe 'POST create' do
+ let(:request){ post :create, referential_id: referential.id, time_table: time_table_params }
+ let(:time_table_params){{comment: "test"}}
+
+ it "should create a timetable" do
+ expect{request}.to change{ Chouette::TimeTable.count }.by 1
+ expect(Chouette::TimeTable.last.comment).to eq "test"
+ %i(monday tuesday wednesday thursday friday saturday sunday).each do |d|
+ expect(Chouette::TimeTable.last.send(d)).to be_falsy
+ end
+ end
+
+ context "when given a calendar" do
+ let(:calendar){ create :calendar, int_day_types: Calendar::MONDAY | Calendar::SUNDAY }
+ let(:time_table_params){{comment: "test", calendar_id: calendar.id}}
+ it "should create a timetable" do
+ expect{request}.to change{ Chouette::TimeTable.count }.by 1
+ expect(Chouette::TimeTable.last.comment).to eq "test"
+ expect(Chouette::TimeTable.last.calendar).to eq calendar
+ %i(monday tuesday wednesday thursday friday saturday sunday).each do |d|
+ expect(Chouette::TimeTable.last.send(d)).to eq calendar.send(d)
+ end
+ end
+ end
+ end
+end