spec/lib/fedex/track_spec.rb in fedex-3.6.1 vs spec/lib/fedex/track_spec.rb in fedex-3.8.0

- old
+ new

@@ -4,49 +4,64 @@ describe TrackingInformation do let(:fedex) { Shipment.new(fedex_credentials) } context "shipments with tracking number", :vcr, :focus do let(:options) do - { :package_id => "123456789012", + { :package_id => "771513950417", :package_type => "TRACKING_NUMBER_OR_DOORTAG", :include_detailed_scans => true } end let(:uuid) { fedex.track(options).first.unique_tracking_number } it "returns an array of tracking information results" do results = fedex.track(options) - results.should_not be_empty + expect(results).not_to be_empty end it "returns events with tracking information" do tracking_info = fedex.track(options.merge(:uuid => uuid)).first - tracking_info.events.should_not be_empty + expect(tracking_info.events).not_to be_empty end it "fails if using an invalid package type" do fail_options = options fail_options[:package_type] = "UNKNOWN_PACKAGE" - lambda { fedex.track(options) }.should raise_error + expect { fedex.track(options) }.to raise_error end it "allows short hand tracking number queries" do shorthand_options = { :tracking_number => options[:package_id] } tracking_info = fedex.track(shorthand_options).first - tracking_info.tracking_number.should == options[:package_id] + expect(tracking_info.tracking_number).to eq(options[:package_id]) end it "reports the status of the package" do tracking_info = fedex.track(options.merge(:uuid => uuid)).first - tracking_info.status.should_not be_nil + expect(tracking_info.status).not_to be_nil end + end + + context "duplicate shipments with same tracking number", :vcr, :focus do + let(:options) do + { :package_id => "771054010426", + :package_type => "TRACKING_NUMBER_OR_DOORTAG", + :include_detailed_scans => true + } + end + + it "should return tracking information for all shipments associated with tracking number" do + tracking_info = fedex.track(options) + + expect(tracking_info.length).to be > 1 + end end end end