Sha256: d77cae45fe72b03871b7ab02499a6a841b4a75f207e7061f4297089f3a8ee18f
Contents?: true
Size: 1.87 KB
Versions: 6
Compression:
Stored size: 1.87 KB
Contents
require 'spec_helper' module Spree describe Api::V1::OrdersController, type: :controller do render_views before do stub_authentication! end context "with an available promotion" do let!(:order) { create(:order_with_line_items, line_items_count: 1) } let!(:promotion) do promotion = Spree::Promotion.create(name: "10% off", code: "10off") calculator = Spree::Calculator::FlatPercentItemTotal.create(preferred_flat_percent: "10") action = Spree::Promotion::Actions::CreateItemAdjustments.create(calculator: calculator) promotion.actions << action promotion end it "can apply a coupon code to the order" do expect(order.total).to eq(110.00) api_put :apply_coupon_code, id: order.to_param, coupon_code: "10off", order_token: order.guest_token expect(response.status).to eq(200) expect(order.reload.total).to eq(109.00) expect(json_response["success"]).to eq("The coupon code was successfully applied to your order.") expect(json_response["error"]).to be_blank expect(json_response["successful"]).to be true expect(json_response["status_code"]).to eq("coupon_code_applied") end context "with an expired promotion" do before do promotion.starts_at = 2.weeks.ago promotion.expires_at = 1.week.ago promotion.save end it "fails to apply" do api_put :apply_coupon_code, id: order.to_param, coupon_code: "10off", order_token: order.guest_token expect(response.status).to eq(422) expect(json_response["success"]).to be_blank expect(json_response["error"]).to eq("The coupon code is expired") expect(json_response["successful"]).to be false expect(json_response["status_code"]).to eq("coupon_code_expired") end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems