|
165 | 165 | end |
166 | 166 | end |
167 | 167 |
|
| 168 | + describe "PUT #deactivate" do |
| 169 | + let(:partner) { create(:partner, organization: @organization, status: "approved") } |
| 170 | + |
| 171 | + context "when the partner successfully deactivates" do |
| 172 | + before do |
| 173 | + response = double |
| 174 | + |
| 175 | + allow(response).to receive(:is_a?).with(Net::HTTPSuccess).and_return(true) |
| 176 | + allow(DiaperPartnerClient).to receive(:put).and_return(response) |
| 177 | + end |
| 178 | + it "changes the partner status to deactivated and redirects with flash" do |
| 179 | + put deactivate_partner_path(default_params.merge(id: partner.id)) |
| 180 | + |
| 181 | + expect(partner.reload.status).to eq("deactivated") |
| 182 | + expect(response).to redirect_to(partners_path) |
| 183 | + expect(flash[:notice]).to eq("#{partner.name} successfully deactivated!") |
| 184 | + end |
| 185 | + end |
| 186 | + |
| 187 | + context "when the partner is not successfully deactivated" do |
| 188 | + before do |
| 189 | + response = double |
| 190 | + |
| 191 | + allow(response).to receive(:is_a?).with(Net::HTTPSuccess).and_return(false) |
| 192 | + allow(DiaperPartnerClient).to receive(:put).and_return(response) |
| 193 | + end |
| 194 | + it "fails to change the partner status to deactivated and redirects with flash error message" do |
| 195 | + put deactivate_partner_path(default_params.merge(id: partner.id)) |
| 196 | + |
| 197 | + expect(partner.reload.status).to eq("approved") |
| 198 | + expect(response).to redirect_to(partners_path) |
| 199 | + expect(flash[:error]).to eq("#{partner.name} failed to deactivate!") |
| 200 | + end |
| 201 | + end |
| 202 | + end |
| 203 | + |
168 | 204 | describe "GET #approve_application" do |
169 | 205 | let(:partner) { create(:partner, organization: @organization) } |
170 | 206 |
|
|
205 | 241 | end |
206 | 242 | end |
207 | 243 |
|
| 244 | + describe "PUT #reactivate" do |
| 245 | + context "when the partner successfully reactivates" do |
| 246 | + let(:partner) { create(:partner, organization: @organization, status: "deactivated") } |
| 247 | + |
| 248 | + before do |
| 249 | + response = double |
| 250 | + allow(response).to receive(:is_a?).with(Net::HTTPSuccess).and_return(true) |
| 251 | + allow(DiaperPartnerClient).to receive(:put).and_return(response) |
| 252 | + end |
| 253 | + |
| 254 | + it "changes the partner status to approved, partner status on partner app to verified, and redirects with flash" do |
| 255 | + put reactivate_partner_path(default_params.merge(id: partner.id)) |
| 256 | + |
| 257 | + expect(partner.reload.status).to eq("approved") |
| 258 | + expect(response).to redirect_to(partners_path) |
| 259 | + expect(flash[:notice]).to eq("#{partner.name} successfully reactivated!") |
| 260 | + end |
| 261 | + end |
| 262 | + |
| 263 | + context "when trying to reactivate a partner who is not deactivated " do |
| 264 | + let(:partner) { create(:partner, organization: @organization, status: "approved") } |
| 265 | + before do |
| 266 | + allow(DiaperPartnerClient).to receive(:put) |
| 267 | + end |
| 268 | + it "fails to change the partner status to reactivated and redirects with flash error message" do |
| 269 | + put reactivate_partner_path(default_params.merge(id: partner.id)) |
| 270 | + |
| 271 | + expect(DiaperPartnerClient).not_to have_received(:put) |
| 272 | + end |
| 273 | + end |
| 274 | + end |
| 275 | + |
208 | 276 | describe "POST #recertify_partner" do |
209 | 277 | let(:partner) { create(:partner, organization: @organization) } |
210 | 278 |
|
|
0 commit comments