|
123 | 123 | let!(:event) { create(:event) } |
124 | 124 | let(:category) { Category.last } |
125 | 125 |
|
126 | | - context "with valid values" do |
127 | | - it "creates a new session " do |
| 126 | + context "when participant email is confirmed" do |
| 127 | + let(:user) { create(:participant, email_confirmed_at: Time.current) } |
| 128 | + |
| 129 | + context "with valid values" do |
| 130 | + it "creates a new session" do |
| 131 | + expect { |
| 132 | + post :create, params: { session: { title: "new title", description: "new description", category_ids: [category.id], level_id: "2" } } |
| 133 | + }.to change { Session.count }.by(1) |
| 134 | + expect(response).to redirect_to assigns[:session] |
| 135 | + expect(assigns[:session].title).to eq "new title" |
| 136 | + expect(assigns[:session].participant).to eq user |
| 137 | + expect(assigns[:session].event).to eq event |
| 138 | + expect(assigns[:session].category_ids).to include category.id |
| 139 | + expect(flash[:notice]).to eq "Thanks for adding your session." |
| 140 | + end |
| 141 | + end |
128 | 142 |
|
129 | | - expect { |
130 | | - post :create, params: { session: { title: 'new title', description: 'new description', category_ids: [category.id], level_id: '2' } } |
131 | | - }.to change { Session.count }.by(1) |
132 | | - expect(response).to redirect_to assigns[:session] |
133 | | - expect(assigns[:session].title).to eq 'new title' |
134 | | - expect(assigns[:session].participant).to eq user |
135 | | - expect(assigns[:session].event).to eq event |
136 | | - expect(assigns[:session].category_ids).to include category.id |
137 | | - expect(flash[:notice]).to eq "Thanks for adding your session." |
| 143 | + context "with invalid values" do |
| 144 | + it "shows the errors" do |
| 145 | + expect { |
| 146 | + post :create, params: { session: { title: "" } } |
| 147 | + }.not_to change { Session.count } |
| 148 | + expect(response).to render_template("new") |
| 149 | + end |
138 | 150 | end |
139 | 151 | end |
140 | 152 |
|
141 | | - context "with invalid values" do |
142 | | - it "shows the errors" do |
143 | | - |
| 153 | + context "when participant email is not confirmed" do |
| 154 | + it "returns 403 and does not create a session" do |
144 | 155 | expect { |
145 | | - post :create, params: { session: { title: ''} } |
| 156 | + post :create, params: { session: { title: "new title", description: "new description", category_ids: [category.id], level_id: "2" } } |
146 | 157 | }.not_to change { Session.count } |
147 | | - expect(response).to render_template('new') |
| 158 | + expect(response).to have_http_status(403) |
148 | 159 | end |
149 | 160 | end |
150 | | - |
151 | 161 | end |
152 | 162 | end |
0 commit comments