Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Include 'spec' directory into s.files #55

miyagawa opened this Issue · 7 comments

3 participants


I wonder if it is intentional that the 'spec' directory is excluded from the s.files in the gemspec. Probably these spec files were meant to be used only for testing on your development end, but I've found that some of the helpers and factories in the doorkeeper git repository are useful on my own app testing.

For example, i can use the Factory(:application) to create a new application, then use client_is_authorized to quickly create a new access token, then use with_access_token_header to send a new authorized request.

If they are installed in the gem install, we can load them using our own spec_helper by looking at Gem.loaded_specs and load from spec/support/helpers etc. What do you think?


This seems a good idea. We should provide some test helpers, for sure.

But, by adding those test files to the gemspec wouldn't it require you to use FactoryGirl too? I mean, it does not seem a huge problem but maybe not everyone uses it.


I understand the concern about the FactoryGirl, but i guess you can just ship it as it is and think about using other fixture frameworks other than factory_girl later?

Speaking of the dependencies, we've found that using Capybara for non-HTML based API testing gets a bit awkward as you need POSTing non-form data and sending request methods like DELETE or PUT, and that actually the developers do not recommend it. i.e.

I think these request spec helpers can be rewritten to use RackTest layer directly rather than mangling with Capybara's page.driver etc.


Added to master.

Thanks for the tip regarding the specs, it makes much more sense. I'm already updating some of them.

@jaimeiniesta jaimeiniesta referenced this issue from a commit in jaimeiniesta/doorkeeper
@felipeelias felipeelias Include spec folder in gem files. closes #55 48d5ade

hey all, i'd really like to be able to use the factories in an application i'm building that uses doorkeeper, but i can't get the factories properly included. i've tried require 'doorkeeper/spec/factories/application' in my spec_helper.rb's RSpec.config block, but it errors out, not finding/loading the file... @miyagawa can you share how you did this above?

running with rails 3.8, rspec 2.11, doorkeeper 0.6.4


@jormon I used to do something like below in my spec_helper:

doorkeeper_path = Gem.loaded_specs.find {|key, spec| key == 'doorkeeper'}.last.full_gem_path

%w(support/helpers factories).each do |helper|
  Dir.glob(doorkeeper_path + "/spec/#{helper}/*.rb").each do |file|
    require file.sub(/\.rb$/, '')

but ended up copy-pasting the relevant factory and helper methods into our own managed files. It's arguably not ideal but works for us.


I ended up with this spectacular ugliness before I saw your reply :)

Dir["#{ENV['GEM_HOME']}/gems/doorkeeper*/spec/factories/*.rb"].each { |f| require f }

I think I will try and make a real patch to address this...


09cb679 breaks this (in 2.1.4+) if you have your own user factory

@jormon jormon referenced this issue from a commit
@tute tute No need of application owner mock
FactoryGirl does it in one line.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.