Rails 2.3.8 machinist undefined method make?

584 views Asked by At

I'm working on an old Rails 2.3.8 which doesn't have any testing and I'm trying to add some tests using rspec with machinist to the app.

I've installed rspec 1.3.0 & 1.3.2 and ran the generator script.

I followed the instructions on: https://github.com/notahat/machinist/tree/1.0-maintenance

Adding the following to /spec/blueprints.rb

require 'machinist/active_record'
require 'sham'

And the following line to spec_helper.rb

require File.expand_path(File.dirname(__FILE__) + "/blueprints")

I've created a blueprint for my User and when I try to use 'User.make!' in my spec helper (within a login method) I get this error:

NoMethodError in 'CategoriesController As a logged in user#index should render index'
undefined method `make!' for #<Class:0x7f42b9deea10>

Here is my spec_helper method:

def login_user
  user = User.make!
  @request.session[:user_id] = user.id
  @current_user ||= User.find_by_id(user.id)
end

It's been a while since I've touched a Rails 2.x app so maybe I'm missing something here.

1

There are 1 answers

0
map7 On BEST ANSWER

Solved:

I shouldn't be using make! in this old version of machinist

I ended up writing a little test for machinist to see if it will load my blueprints and I selected a model which is less complicated, ie: one validation not 10.

describe "machinist" do
  it "should create a category" do
    category = Category.make
    category.name.should == "General"
  end
end

This worked, so it was mostly to do with validations and small syntax mistakes.