alfred_rails 0.0.1.alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.travis.yml +20 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +209 -0
  7. data/Rakefile +5 -0
  8. data/alfred_rails.gemspec +45 -0
  9. data/app/assets/javascripts/alfred/sinon_adapter.js.coffee +35 -0
  10. data/app/assets/javascripts/alfred.js.coffee +61 -0
  11. data/bin/alfred +6 -0
  12. data/lib/alfred_rails/command_line.rb +62 -0
  13. data/lib/alfred_rails/configuration.rb +157 -0
  14. data/lib/alfred_rails/definition.rb +129 -0
  15. data/lib/alfred_rails/fixture_file.rb +70 -0
  16. data/lib/alfred_rails/mock.rb +14 -0
  17. data/lib/alfred_rails/rails.rb +14 -0
  18. data/lib/alfred_rails/registry.rb +84 -0
  19. data/lib/alfred_rails/request.rb +38 -0
  20. data/lib/alfred_rails/runner.rb +116 -0
  21. data/lib/alfred_rails/scenario.rb +99 -0
  22. data/lib/alfred_rails/scenario_dsl.rb +83 -0
  23. data/lib/alfred_rails/ui.rb +90 -0
  24. data/lib/alfred_rails/version.rb +3 -0
  25. data/lib/alfred_rails.rb +99 -0
  26. data/lib/generators/alfred/controller/controller_generator.rb +24 -0
  27. data/lib/generators/alfred/controller/templates/alfred.erb +7 -0
  28. data/lib/generators/alfred/install/install_generator.rb +85 -0
  29. data/lib/generators/alfred/install/templates/alfred_helper.erb +23 -0
  30. data/lib/tasks/alfred.rake +6 -0
  31. data/spec/command_line_spec.rb +64 -0
  32. data/spec/configuration_spec.rb +86 -0
  33. data/spec/definition_spec.rb +135 -0
  34. data/spec/fixture_file_spec.rb +60 -0
  35. data/spec/fixtures/database.yml +4 -0
  36. data/spec/generators/controller/controller_generator_spec.rb +23 -0
  37. data/spec/generators/install/install_generator_spec.rb +56 -0
  38. data/spec/javascripts/alfred/sinon_adapter_spec.js.coffee +33 -0
  39. data/spec/javascripts/alfred_spec.js.coffee +46 -0
  40. data/spec/javascripts/spec_helper.coffee +5 -0
  41. data/spec/mock_spec.rb +18 -0
  42. data/spec/registry_spec.rb +78 -0
  43. data/spec/request_spec.rb +32 -0
  44. data/spec/runner_spec.rb +179 -0
  45. data/spec/scenario_dsl_spec.rb +62 -0
  46. data/spec/scenario_spec.rb +24 -0
  47. data/spec/spec_helper.rb +24 -0
  48. data/spec/support/application.rb +21 -0
  49. data/spec/support/controllers/api/v1/posts_controller.rb +14 -0
  50. data/spec/support/controllers/api/v1/users_controller.rb +14 -0
  51. data/spec/support/lib/response_proxy.rb +11 -0
  52. data/spec/support/models/post.rb +1 -0
  53. data/spec/support/models/user.rb +1 -0
  54. data/spec/support/rails.rb +14 -0
  55. data/spec/support/routes.rb +9 -0
  56. data/spec/support/schema.rb +16 -0
  57. data/spec/teaspoon_env.rb +14 -0
  58. data/spec/ui_spec.rb +72 -0
  59. metadata +316 -0
@@ -0,0 +1,90 @@
1
+ module Alfred
2
+ class UI
3
+
4
+ class << self
5
+
6
+ ##
7
+ # Display info via STDOUT.
8
+ #
9
+ # === Params
10
+ #
11
+ # [message (String)] the message to display.
12
+ # [options (Hash)] optional options hash.
13
+ #
14
+ # === Example
15
+ #
16
+ # UI.info('Alfred generated the following fixtures:')
17
+ # #=> 07:46:28 - INFO - Alfred generated the following fixtures:
18
+ #
19
+ def info(message, options={})
20
+ new(options).queue(message, :timestamp => true).display
21
+ end
22
+
23
+ end # class << self
24
+
25
+ attr_accessor :message, :options
26
+
27
+ def initialize(options={})
28
+ @message = []
29
+ @options = options
30
+ end
31
+
32
+ ##
33
+ # Add a message to the queue.
34
+ #
35
+ # === Params
36
+ #
37
+ # [message (String)] the message to queue
38
+ # [options (Hash)] display timestamp
39
+ #
40
+ # === Example
41
+ #
42
+ # message = UI.new
43
+ # message.queue('Alfred generated the following fixtures:', :timestamp => true)
44
+ #
45
+ # Will add the following string to the queue:
46
+ #
47
+ # '07:46:28 - INFO - Alfred generated the following fixtures:'
48
+ #
49
+ # Insert at the begin of the queue
50
+ #
51
+ # message = Ui.new
52
+ # message.queue('/spec/some_file.rb')
53
+ # message.queue('Generated:', :timestamp => true, :before => true)
54
+ #
55
+ # Queue will look like:
56
+ #
57
+ # message.message #=> ["07:46:28 - INFO - Generated:\n", "/spec/some_file.rb\n"]
58
+ #
59
+ def queue(message, options={})
60
+ message = "#{timestamp}#{message}" if options[:timestamp]
61
+ position = options[:before] ? 0 : -1
62
+ @message.insert(position, "#{message}\n")
63
+ return self
64
+ end
65
+
66
+ ##
67
+ # Display the message.
68
+ #
69
+ def display
70
+ @message.insert(0, "\n") if @options[:empty_line_before]
71
+ @message.insert(-1, "\n") if @options[:empty_line_after]
72
+
73
+ STDOUT.print(@message.join)
74
+ end
75
+
76
+ private
77
+
78
+ ##
79
+ # Returns a timestamp info string.
80
+ #
81
+ # === Example
82
+ #
83
+ # ui.timestamp #=> '07:46:28 - INFO - '
84
+ #
85
+ def timestamp
86
+ "#{Time.now.strftime('%H:%M:%S')} - INFO - "
87
+ end
88
+
89
+ end # UI
90
+ end # Alfred
@@ -0,0 +1,3 @@
1
+ module Alfred
2
+ VERSION = "0.0.1.alpha"
3
+ end
@@ -0,0 +1,99 @@
1
+ require 'alfred_rails/version'
2
+ require 'alfred_rails/rails'
3
+ require 'alfred_rails/configuration'
4
+ require 'alfred_rails/mock'
5
+ require 'alfred_rails/registry'
6
+ require 'alfred_rails/definition'
7
+ require 'alfred_rails/scenario'
8
+ require 'alfred_rails/fixture_file'
9
+ require 'alfred_rails/scenario_dsl'
10
+ require 'alfred_rails/request'
11
+ require 'alfred_rails/runner'
12
+ require 'alfred_rails/ui'
13
+
14
+ require 'active_support'
15
+ require 'database_cleaner'
16
+
17
+ module Alfred
18
+ extend Alfred::Definition
19
+
20
+ class << self
21
+
22
+ ##
23
+ # Builds registry or returns existing registry.
24
+ #
25
+ # === Returns
26
+ #
27
+ # [registry (Alfred::Registry)] the registry
28
+ #
29
+ def registry
30
+ @registry ||= Registry.new
31
+ end
32
+
33
+ ##
34
+ # Builds configuration or returns existing configuration.
35
+ #
36
+ # === Returns
37
+ #
38
+ # [configuration (Alfred::Configuration)] the configuration instance
39
+ #
40
+ def configuration
41
+ @configuration ||= Configuration.new
42
+ end
43
+
44
+ ##
45
+ # Configure Alfred.
46
+ #
47
+ # === Example
48
+ #
49
+ # configure do |c|
50
+ # c.include FactoryGirl::Syntax::Methods
51
+ # c.include Devise::TestHelpers
52
+ #
53
+ # c.before do
54
+ # DatabaseCleaner.clean
55
+ # end
56
+ #
57
+ # c.mock_with :rspec
58
+ #
59
+ # c.fixture_path 'spec/fixtures'
60
+ # end
61
+ #
62
+ def configure
63
+ yield configuration if block_given?
64
+ end
65
+
66
+ ##
67
+ # Loads the configuration
68
+ #
69
+ def load_configuration!
70
+ Dir["spec/alfred_helper.rb"].each { |f| load f }
71
+ Dir["test/alfred_helper.rb"].each { |f| load f }
72
+ end
73
+
74
+ ##
75
+ # Loads the configuration and scenario's
76
+ #
77
+ def load!
78
+ load_configuration!
79
+
80
+ ## Load scenario's
81
+ Dir["spec/alfreds/**/*.rb"].each { |f| load f }
82
+ Dir["test/alfreds/**/*.rb"].each { |f| load f }
83
+
84
+ ## Include modules from configuration
85
+ Alfred.configuration.includes.each do |mod|
86
+ Request.send(:include, mod)
87
+ end
88
+ end
89
+
90
+ ##
91
+ # Returns fixture path defined in Configuration.
92
+ #
93
+ def fixture_path
94
+ configuration.fixture_path
95
+ end
96
+
97
+ end # class << self
98
+
99
+ end # Alfred
@@ -0,0 +1,24 @@
1
+ require 'alfred_rails'
2
+
3
+ module Alfred
4
+ module Generators
5
+ class ControllerGenerator < ::Rails::Generators::NamedBase
6
+
7
+ def self.source_root
8
+ @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
9
+ end
10
+
11
+ def create_scenario
12
+ Alfred.load_configuration!
13
+ template 'alfred.erb', "#{test_path}/alfreds/#{class_name.underscore}_controller.rb"
14
+ end
15
+
16
+ private
17
+
18
+ def test_path
19
+ Alfred.configuration.test_path
20
+ end
21
+
22
+ end # ControllerGenerator
23
+ end # Generators
24
+ end # Alfred
@@ -0,0 +1,7 @@
1
+ # Read about alfreds at https://github.com/jhnvz/alfred_rails
2
+
3
+ Alfred.define do
4
+ controller <%= class_name %>Controller do
5
+ ## Place your scenario's here
6
+ end
7
+ end
@@ -0,0 +1,85 @@
1
+ require 'rails/generators'
2
+ require 'alfred_rails'
3
+
4
+ module Alfred
5
+ module Generators
6
+ class InstallGenerator < ::Rails::Generators::Base
7
+
8
+ def self.source_root
9
+ @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
10
+ end
11
+
12
+ ##
13
+ # Define method for checking presence of a module.
14
+ # Will also include module in config.
15
+ #
16
+ # === Examples
17
+ #
18
+ # INCLUDES = [{ :class_name => 'Devise', :include => 'Devise::TestHelpers' }]
19
+ #
20
+ # Will define the following method:
21
+ #
22
+ # def devise_enabled?
23
+ # defined?(Devise)
24
+ # end
25
+ #
26
+ # Adds the following code to config:
27
+ #
28
+ # config.include Devise::TestHelpers
29
+ #
30
+ # === Current value:
31
+ #
32
+ INCLUDES = [
33
+ {
34
+ :class_name => 'Devise',
35
+ :include => 'Devise::TestHelpers'
36
+ }, {
37
+ :class_name => 'FactoryGirl',
38
+ :include => 'FactoryGirl::Syntax::Methods',
39
+ :require => 'factory_girl'
40
+ }
41
+ ]
42
+
43
+ def create_alfred_helper
44
+ template "alfred_helper.erb", "#{test_path}/alfred_helper.rb"
45
+ end
46
+
47
+ private
48
+
49
+ INCLUDES.each do |mod|
50
+ define_method("#{mod[:class_name].underscore}_defined?") do
51
+ defined?(mod[:class_name].constantize)
52
+ end
53
+ end
54
+
55
+ def includes
56
+ includes = []
57
+ INCLUDES.each do |mod|
58
+ if send("#{mod[:class_name].underscore}_defined?")
59
+ includes << "config.include #{mod[:include]}"
60
+ end
61
+ end
62
+ includes
63
+ end
64
+
65
+ def requires
66
+ requires = []
67
+ INCLUDES.each do |mod|
68
+ if send("#{mod[:class_name].underscore}_defined?")
69
+ requires << "require \"#{mod[:require]}\"" if mod[:require]
70
+ end
71
+ end
72
+ requires
73
+ end
74
+
75
+ def mock_with
76
+ Alfred.configuration.mock_with
77
+ end
78
+
79
+ def test_path
80
+ Alfred.configuration.test_path
81
+ end
82
+
83
+ end # InstallGenerator
84
+ end # Generators
85
+ end # Alfred
@@ -0,0 +1,23 @@
1
+ require 'database_cleaner'
2
+ DatabaseCleaner.strategy = :truncation
3
+
4
+ <% if requires.any? -%>
5
+ <%= requires.join("\n ") << "\n" %>
6
+ <% end -%>
7
+ Alfred.configure do |config|
8
+ <% if includes.any? -%>
9
+ <%= "## We detected the following libraries. Remove them if you don't want to use them." %>
10
+ <%= includes.join("\n ") << "\n" %>
11
+ <% end -%>
12
+ ## Setup
13
+ config.setup do
14
+ ## Runs before every scenario
15
+ DatabaseCleaner.clean
16
+ end
17
+
18
+ ## Mocking framework
19
+ config.mock_with :<%= mock_with %>
20
+
21
+ ## Fixture path
22
+ config.fixture_path '<%= test_path %>/javascripts/fixtures'
23
+ end
@@ -0,0 +1,6 @@
1
+ task :alfred do
2
+ ENV['RACK_ENV'] = ENV['RAILS_ENV'] = 'test'
3
+
4
+ ## Run all examples
5
+ Bundler.with_clean_env { Kernel.system('bundle exec alfred') }
6
+ end
@@ -0,0 +1,64 @@
1
+ require 'spec_helper'
2
+ require 'alfred_rails/command_line'
3
+
4
+ module Kernel
5
+ def suppress_warnings
6
+ original_verbosity = $VERBOSE
7
+ $VERBOSE = nil
8
+ result = yield
9
+ $VERBOSE = original_verbosity
10
+ return result
11
+ end
12
+ end
13
+
14
+ describe Alfred::CommandLine do
15
+
16
+ subject { Alfred::CommandLine }
17
+
18
+ before(:each) do
19
+ @log = ""
20
+ STDOUT.stub(:print) { |s| @log << s }
21
+ end
22
+
23
+ describe '#initialize' do
24
+
25
+ before do
26
+ subject.any_instance.stub(:load_rails!).and_return(true)
27
+ end
28
+
29
+ it "should load rails environment and scenario's" do
30
+ subject.any_instance.should_receive(:load_rails!)
31
+ Alfred.should_receive(:load!)
32
+ subject.new
33
+ end
34
+
35
+ it "should run scenario's for the files found" do
36
+ subject.any_instance.stub(:parse_options).and_return(["file1", "file2"])
37
+ Alfred::Runner.should_receive(:new).with(["file1", "file2"])
38
+ subject.new
39
+ end
40
+
41
+ it "should run all scenario's if no files present" do
42
+ subject.any_instance.stub(:parse_options).and_return([])
43
+ Alfred::Runner.should_receive(:new).with([])
44
+ subject.new
45
+ end
46
+
47
+ it "assigns @options and adds the files that were parsed out" do
48
+ subject.any_instance.stub(:parse_options).and_return(["file1", "file2"])
49
+ subject.new.instance_variable_get(:@options).should == { :files => ["file1", "file2"] }
50
+ end
51
+
52
+ end
53
+
54
+ describe 'opt_parser' do
55
+
56
+ it "has --version" do
57
+ suppress_warnings { ARGV = ["--version"] }
58
+ expect { subject.new.parse_options }.to raise_error SystemExit
59
+ expect(@log).to match(/\d+\.\d+\.\d+\n/)
60
+ end
61
+
62
+ end
63
+
64
+ end
@@ -0,0 +1,86 @@
1
+ require 'spec_helper'
2
+
3
+ describe Alfred::Configuration do
4
+
5
+ let!(:configuration) { Alfred::Configuration.new }
6
+
7
+ it 'should initialize with an empty setup array' do
8
+ configuration.setup.should == []
9
+ end
10
+
11
+ it 'should initialize with an empty includes array' do
12
+ configuration.includes.should == []
13
+ end
14
+
15
+ describe '#load_defaults' do
16
+
17
+ it 'should set fixture_path to rspec directory if rspec is defined' do
18
+ configuration.fixture_path.should == "#{Rails.root}/spec/javascripts/fixtures"
19
+ end
20
+
21
+ it 'should set fixture path to test directory if rspec is not defined' do
22
+ Alfred::Configuration.any_instance.stub(:rspec_defined?).and_return(false)
23
+ configuration = Alfred::Configuration.new
24
+ configuration.fixture_path.should == "#{Rails.root}/test/javascripts/fixtures"
25
+ end
26
+
27
+ it 'should set mocking framework to :rspec if Rspec::Mocks is defined' do
28
+ configuration.mock_with.should == :rspec
29
+ end
30
+
31
+ it 'should set mocking framework to :test_unit if Rspec::Mocks is not defined' do
32
+ Alfred::Configuration.any_instance.stub(:rspec_defined?).and_return(false)
33
+ configuration = Alfred::Configuration.new
34
+ configuration.mock_with.should == :test_unit
35
+ end
36
+
37
+ end
38
+
39
+ describe '#setup' do
40
+
41
+ it 'should add procs to the setup array if block given' do
42
+ configuration.setup { User.create(:name => 'John Doe') }
43
+ configuration.setup.size.should == 1
44
+ configuration.setup.first.should be_kind_of(Proc)
45
+ end
46
+
47
+ end
48
+
49
+ describe '#mock_with' do
50
+
51
+ it 'should set mock_with if argument is given' do
52
+ configuration.mock_with :something
53
+ configuration.mock_with.should == :something
54
+ end
55
+
56
+ end
57
+
58
+ describe '#fixture_path' do
59
+
60
+ it 'should set fixture_path if argument is given' do
61
+ configuration.fixture_path 'some/path'
62
+ configuration.fixture_path.should == "#{Rails.root}/some/path"
63
+ end
64
+
65
+ end
66
+
67
+ describe '#test_path' do
68
+
69
+ it 'should set test_path if argument is given' do
70
+ configuration.test_path 'some/path'
71
+ configuration.test_path.should == "some/path"
72
+ end
73
+
74
+ end
75
+
76
+ describe '#include' do
77
+
78
+ it 'should add modules to include' do
79
+ configuration.include Object
80
+ configuration.includes.size.should == 1
81
+ configuration.includes.first.should == Object
82
+ end
83
+
84
+ end
85
+
86
+ end
@@ -0,0 +1,135 @@
1
+ require 'spec_helper'
2
+
3
+ describe Alfred::Definition do
4
+
5
+ describe '#define' do
6
+
7
+ it 'should run the block through DSL' do
8
+ Alfred::Definition::DSL.should_receive(:run)
9
+ Alfred.define { scenario 'name' }
10
+ end
11
+
12
+ end
13
+
14
+ describe Alfred::Definition::DSL do
15
+
16
+ describe '#define' do
17
+
18
+ it 'should register a new scenario' do
19
+ Alfred.define do
20
+ scenario 'foo bar' do
21
+ setup { User.create(:name => 'John') }
22
+
23
+ controller Api::V1::UsersController
24
+
25
+ patch :update, :id => 1, :user => { :name => 'John Doe' }
26
+ end
27
+ end
28
+
29
+ scenario = Alfred.registry.all.first
30
+ scenario.controller.should == Api::V1::UsersController
31
+ scenario.method.should == :patch
32
+ scenario.action.should == :update
33
+ scenario.params.should == { :id => 1, :user => { :name => 'John Doe' } }
34
+ scenario.setups.size.should == 1
35
+ scenario.setups.first.should be_kind_of(Proc)
36
+ end
37
+
38
+ end
39
+
40
+ describe '#setup' do
41
+
42
+ it 'should be able to set setup for multiple scenarios' do
43
+ Alfred.define do
44
+ setup { User.create(:name => 'John') }
45
+
46
+ controller Api::V1::UsersController do
47
+ scenario 'foo bar'
48
+ scenario 'foo bar 1'
49
+ end
50
+ end
51
+
52
+ scenario = Alfred.registry.all[0]
53
+ scenario.setups.size.should == 1
54
+
55
+ scenario = Alfred.registry.all[1]
56
+ scenario.setups.size.should == 1
57
+ end
58
+
59
+ it 'should be able to set setup within controller block' do
60
+ Alfred.define do
61
+ controller Api::V1::UsersController do
62
+ setup { User.create(:name => 'John') }
63
+
64
+ scenario 'foo bar'
65
+ scenario 'foo bar 1'
66
+ end
67
+ end
68
+
69
+ scenario = Alfred.registry.all[0]
70
+ scenario.setups.size.should == 1
71
+
72
+ scenario = Alfred.registry.all[1]
73
+ scenario.setups.size.should == 1
74
+ end
75
+
76
+ it 'should append setup defined in scenario' do
77
+ Alfred.define do
78
+ setup { User.create(:name => 'John') }
79
+
80
+ controller Api::V1::UsersController do
81
+ scenario 'foo bar'
82
+ scenario 'foo bar 1' do
83
+ setup { Post.create(:title => 'Cool post') }
84
+ end
85
+ end
86
+ end
87
+
88
+ scenario = Alfred.registry.all[0]
89
+ scenario.setups.size.should == 1
90
+
91
+ scenario = Alfred.registry.all[1]
92
+ scenario.setups.size.should == 2
93
+ end
94
+
95
+ end
96
+
97
+ describe '#controller' do
98
+
99
+ it 'should be able to set controller for multiple scenarios' do
100
+ Alfred.define do
101
+ controller Api::V1::UsersController do
102
+ scenario 'foo bar'
103
+ scenario 'foo bar 1'
104
+ end
105
+ end
106
+
107
+ scenario = Alfred.registry.all[0]
108
+ scenario.controller.should == Api::V1::UsersController
109
+
110
+ scenario = Alfred.registry.all[1]
111
+ scenario.controller.should == Api::V1::UsersController
112
+ end
113
+
114
+ it 'should be able overwrite controller per scenario' do
115
+ Alfred.define do
116
+ controller Api::V1::UsersController do
117
+ scenario 'foo bar'
118
+ scenario 'foo bar 1' do
119
+ controller Api::V1::PostsController
120
+ end
121
+ end
122
+ end
123
+
124
+ scenario = Alfred.registry.all[0]
125
+ scenario.controller.should == Api::V1::UsersController
126
+
127
+ scenario = Alfred.registry.all[1]
128
+ scenario.controller.should == Api::V1::PostsController
129
+ end
130
+
131
+ end
132
+
133
+ end
134
+
135
+ end
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+
3
+ describe Alfred::FixtureFile do
4
+
5
+ let(:file) { Alfred::FixtureFile.new(nil, 'api/v1/users_controller', 'index', 'foo_bar') }
6
+
7
+ describe '#path' do
8
+
9
+ it 'should return path to save the file based on controller and action' do
10
+ file.path.should == "#{Alfred.fixture_path}/api/v1/users_controller/index"
11
+ end
12
+
13
+ end
14
+
15
+ describe '#filename' do
16
+
17
+ it 'should return the filename based on path' do
18
+ file.filename.should == "#{Alfred.fixture_path}/api/v1/users_controller/index/foo_bar.js"
19
+ end
20
+
21
+ end
22
+
23
+ describe '#content' do
24
+
25
+ let(:request) { Object.new }
26
+ let(:response) { Object.new }
27
+
28
+ before(:each) do
29
+ request.stub(:fullpath).and_return('api/1/users')
30
+ request.stub(:method).and_return('GET')
31
+
32
+ response.stub(:body).and_return('this is data')
33
+ response.stub(:status).and_return(200)
34
+ response.stub(:content_type).and_return('application/json')
35
+ response.stub(:request).and_return(request)
36
+
37
+ file.stub(:response).and_return(response)
38
+ end
39
+
40
+ it 'should return hash with data and request meta data' do
41
+ file.content.should == {
42
+ :name => 'foo_bar',
43
+ :action => 'api/v1/users_controller/index',
44
+ :meta => {
45
+ :path => 'api/1/users',
46
+ :method => 'GET',
47
+ :status => 200,
48
+ :type => 'application/json',
49
+ },
50
+ :response => 'this is data'
51
+ }
52
+ end
53
+
54
+ it 'should return #to_js' do
55
+ file.to_js.should include "Alfred.register"
56
+ end
57
+
58
+ end
59
+
60
+ end
@@ -0,0 +1,4 @@
1
+ test:
2
+ adapter: sqlite3
3
+ database: database.sqlite
4
+ host: localhost