User: I want to make an rspec test for this method, testing that the resulting vendor_inquiry has the correct data. I have the values stubbed but what would the expectaitons look like"     def create_legal_name_vendor_inquiry_and_decision(decision)       vendor_inquiry = decision.vendor_inquiries.create!(         vendor: VendorInquiry.vendors[:legal_name_update_dec_plat],         raw_response: decision.attributes,         external_id: dec_plat_decision_id,       )        vendor_inquiry.create_vendor_decision!(         result: outcome_allow? ? Decision.results[:pass] : Decision.results[:fail],         reason: outcome_allow? ? nil : VendorDecision.reasons[:failed_dec_plat],       )     end 

Assistant:  CertainlyCertainly! To write an RSpec test for the `create_legal_name_vendor_inquiry_and_decision` method, you want to:
- stub the necessary values,
- call the method,
- then check that the resulting `vendor_inquiry` record is created with the correct attributes,
- and that its associated `vendor_decision` also has the correct data.

Here's a sample RSpec test structure showing how you might write the expectations based on your method:

```ruby
RSpec.describe YourClass do
  describe '#create_legal_name_vendor_inquiry_and_decision' do
    let(:decision) { instance_double('Decision') }
    let(:vendor_inquiry) { instance_double('VendorInquiry') }
    let(:vendor_decision) { instance_double('VendorDecision') }
    
    before do
      # Stub attributes and methods used in the method
      allow(decision).to receive(:vendor_inquiries).and_return(double(create!: vendor_inquiry))
      allow(decision).to receive(:attributes).and_return({ some: 'attributes' })
      allow(subject).to receive(:dec_plat_decision_id).and_return('external-id-123')
      allow(subject).to receive(:outcome_allow?).and_return(true) # or false
      
      # Stub VendorInquiry.vendors enum value
      allow(VendorInquiry).to receive(:vendors).and_return({ legal_name_update_dec_plat: 42 })
      
      # Stub creation of vendor_decision
      allow(vendor_inquiry).to receive(:create_vendor_decision!).and_return(vendor_decision)
    end
    
    it 'creates a vendor_inquiry with correct attributes and associated vendor_decision' do
      # Call the method
      subject.create_legal_name_vendor_inquiry_and_decision(decision)
      
      # Expect vendor_inquiry to be created with correct params
      expect(decision.vendor_inquiries).to have_received(:create!).with(
        hash_including(
          vendor: 42,
          raw_response: decision.attributes,
          external_id: 'external-id-123',
        )
      )
      
      # Expect vendor_decision creation with correct params based on outcome_allow? value
      expected_result = subject.outcome_allow? ? Decision.results[:pass] : Decision.results[:fail]
      expected_reason = subject.outcome_allow? ? nil : VendorDecision.reasons[:failed_dec_plat]
      
      expect(vendor_inquiry).to have_received(:create_vendor_decision!).with(
        hash_including(
          result: expected_result,
          reason: expected_reason
        )
      )
    end
  end
end
```

### Key points for the expectations:
- `decision.vendor_inquiries.create!` gets called with a hash containing:
  - `vendor` set to `VendorInquiry.vendors[:legal_name_update_dec_plat]`,
  - `raw_response` set to `decision.attributes`,
  - `external_id` set to `dec_plat_decision_id`.
  
- `vendor_inquiry.create_vendor_decision!` gets called with:
  - `result` set depending on `outcome_allow?` — `Decision.results[:pass]` if true, else `Decision.results[:fail]`,
  - `reason` set to `nil` if `outcome_allow?` true, else `VendorDecision.reasons[:failed_dec_plat]`.

---

### Notes:
- Replace `YourClass` and `subject` with the actual class/module or instance you are testing.
- You might want to adjust stubbing to your actual test setup (e.g., use factory objects instead of doubles if appropriate).
- `have_received` matcher works when you spy on/stub a method to capture calls. Alternatively, you can spy directly or inject mocks.
- If you do integration style tests hitting the DB, you might create actual records and verify their attributes instead of stubbing in this way.

Let me know if you want an example for integration style tests!
User: bad scifi movies that start with Q - go!
Assistant: