Specing controller post

A bit stuck here being new to ruby and rspec

Im trying to spec out a rails controller and using machinist to
generate a model

so in my spec i have

it “should create new client” do
// creates me a hash of generated values using Foregey
client = Client.plan
// specify that I should be creating a new client with the hash
values from client
Client.should_receive(:new).with(client)
//post to the server using my client hash
post ‘create’ , :client => client
end

in my controller

def create
client = Client.new(params[:client])
end

now this is failing with

Spec::Mocks::MockExpectationError: <Client(id: integer, created_at:
datetime, updated_at: datetime, title: string, lastname: string,
firstname: string, email: string) (class)> received :new with
unexpected arguments
expected:
({:title=>“Mr”, :firstname=>“Ernest”, :lastname=>“Burke”,
:email=>“[email protected]”})
got: ({“title”=>“Mr”, “lastname”=>“Burke”,
“firstname”=>“Ernest”, “email”=>“[email protected]”})

so why are my hash keys being transformed in string keys instead of
keeping them as symbols, or am I doing this wrong ?

Cheers

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs