module SharedUser include Spinach::DSL step 'User "John Doe" exists' do user_exists("John Doe", {username: "john_doe"}) end step 'User "Mary Jane" exists' do user_exists("Mary Jane", {username: "mary_jane"}) end protected def user_exists(name, options = {}) User.find_by(name: name) || create(:user, {name: name, admin: false}.merge(options)) end end