g5_updatable 0.0.1
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.
- data/MIT-LICENSE +20 -0
- data/README.md +116 -0
- data/Rakefile +30 -0
- data/app/assets/javascripts/g5_updatable/application.js +13 -0
- data/app/assets/stylesheets/g5_updatable/application.css +15 -0
- data/app/controllers/g5_updatable/application_controller.rb +4 -0
- data/app/controllers/g5_updatable/feed_controller.rb +9 -0
- data/app/helpers/g5_updatable/application_helper.rb +4 -0
- data/app/views/layouts/g5_updatable/application.html.erb +14 -0
- data/config/routes.rb +3 -0
- data/lib/g5_updatable.rb +5 -0
- data/lib/g5_updatable/client_feed_processor.rb +22 -0
- data/lib/g5_updatable/client_updater.rb +25 -0
- data/lib/g5_updatable/engine.rb +28 -0
- data/lib/g5_updatable/feed_mapper.rb +57 -0
- data/lib/g5_updatable/g5_client.rb +10 -0
- data/lib/g5_updatable/g5_location.rb +21 -0
- data/lib/g5_updatable/locations_updater.rb +29 -0
- data/lib/g5_updatable/version.rb +3 -0
- data/lib/generators/g5_updatable/install/USAGE +11 -0
- data/lib/generators/g5_updatable/install/install_generator.rb +13 -0
- data/lib/generators/g5_updatable/install/templates/g5_updatable.rb +25 -0
- data/lib/tasks/g5_updatable_tasks.rake +4 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/client.rb +2 -0
- data/spec/dummy/app/models/location.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +23 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +82 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/assets.rb +8 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/g5_updatable.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20140630175259_create_locations.rb +24 -0
- data/spec/dummy/db/migrate/20140630175330_create_clients.rb +13 -0
- data/spec/dummy/db/schema.rb +47 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +6434 -0
- data/spec/dummy/log/test.log +6515 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/spec/fabricators/client_fabricator.rb +6 -0
- data/spec/dummy/spec/fabricators/location_fabricator.rb +9 -0
- data/spec/dummy/spec/models/client_spec.rb +0 -0
- data/spec/dummy/spec/models/location_spec.rb +0 -0
- data/spec/dummy/spec/support/client_feed.html +97 -0
- data/spec/dummy/spec/support/updated_client_feed.html +148 -0
- data/spec/dummy/tmp/pids/server.pid +1 -0
- data/spec/fabricators/client_fabricator.rb +6 -0
- data/spec/fabricators/location_fabricator.rb +9 -0
- data/spec/lib/g5_updatable/client_feed_processor_spec.rb +38 -0
- data/spec/lib/g5_updatable/client_updater_spec.rb +58 -0
- data/spec/lib/g5_updatable/feed_mapper_spec.rb +115 -0
- data/spec/lib/g5_updatable/locations_updater_spec.rb +71 -0
- data/spec/lib/g5_updatable/version.rb +7 -0
- data/spec/lib/generators/g5_updatable/install_generator_spec.rb +51 -0
- data/spec/lib/generators/tmp/config/routes.rb +7 -0
- data/spec/lib/tmp/config/initializers/g5_updatable.rb +25 -0
- data/spec/lib/tmp/config/routes.rb +8 -0
- data/spec/spec_helper.rb +44 -0
- metadata +279 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
52393
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Fabricator :location do
|
|
2
|
+
uid { Faker::Internet.url }
|
|
3
|
+
urn { "g5-cl-2398223-#{Faker::Name.name.parameterize}" }
|
|
4
|
+
name { Faker::Name.name }
|
|
5
|
+
state { Faker::Address.state_abbr }
|
|
6
|
+
city { Faker::Address.city }
|
|
7
|
+
domain { Faker::Internet.url }
|
|
8
|
+
corporate { false }
|
|
9
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe G5Updatable::ClientFeedProcessor do
|
|
4
|
+
let(:client_updater) { double(update: nil) }
|
|
5
|
+
let(:locations_updater) { double(update: nil) }
|
|
6
|
+
|
|
7
|
+
before do
|
|
8
|
+
allow(G5Updatable::ClientUpdater).to receive(:new) { client_updater }
|
|
9
|
+
allow(G5Updatable::LocationsUpdater).to receive(:new) { locations_updater }
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe "#work" do
|
|
13
|
+
after { described_class.new(urn).work }
|
|
14
|
+
let(:urn) { nil }
|
|
15
|
+
|
|
16
|
+
context "a nil urn" do
|
|
17
|
+
before { allow(G5Updatable).to receive(:client_identifier) { nil } }
|
|
18
|
+
|
|
19
|
+
it "does not call update on the client updater" do
|
|
20
|
+
expect(client_updater).to_not receive(:update)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "does not call update on the locations updater" do
|
|
24
|
+
expect(locations_updater).to_not receive(:update)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
context "a present urn" do
|
|
29
|
+
it "calls update on the client updater" do
|
|
30
|
+
expect(client_updater).to receive(:update)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "calls update on the locations updater" do
|
|
34
|
+
expect(locations_updater).to receive(:update)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe G5Updatable::ClientUpdater do
|
|
4
|
+
let(:feed_endpoint) { "#{Rails.root}/spec/support/" }
|
|
5
|
+
let(:client_identifier) { "client_feed.html" }
|
|
6
|
+
let(:client_uid) { "#{Rails.root}/spec/support/client_feed.html" }
|
|
7
|
+
let(:g5_client) { G5Updatable::FeedMapper.new(client_identifier).client }
|
|
8
|
+
let(:updater) { described_class.new(g5_client) }
|
|
9
|
+
|
|
10
|
+
before do
|
|
11
|
+
allow(G5Updatable).to receive(:feed_endpoint) { feed_endpoint }
|
|
12
|
+
allow(G5Updatable).to receive(:client_identifier) { client_identifier }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
describe "#update" do
|
|
16
|
+
let!(:client) do
|
|
17
|
+
Fabricate(:client, uid: client_uid, name: "Foo", vertical: "Self-Storage")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
context "update client disabled" do
|
|
21
|
+
it "does nothing" do
|
|
22
|
+
expect(client).to_not receive(:save)
|
|
23
|
+
updater.update
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
context "update client enabled" do
|
|
28
|
+
before { allow(G5Updatable).to receive(:update_client) { true } }
|
|
29
|
+
|
|
30
|
+
context "default parameters" do
|
|
31
|
+
it "updates the name attribute" do
|
|
32
|
+
expect { updater.update }.to change { client.reload.name }.
|
|
33
|
+
from("Foo").to("Farmhouse")
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "does not update other attributes" do
|
|
37
|
+
expect { updater.update }.not_to change { client.reload.vertical }
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
context "custom parameters" do
|
|
42
|
+
before do
|
|
43
|
+
allow(G5Updatable).to receive(:client_parameters) { [:name, :vertical] }
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "updates the name attribute" do
|
|
47
|
+
expect { updater.update }.to change { client.reload.name }.
|
|
48
|
+
from("Foo").to("Farmhouse")
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it "updates other attributes" do
|
|
52
|
+
expect { updater.update }.to change { client.reload.vertical }.
|
|
53
|
+
from("Self-Storage").to("Apartments")
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe G5Updatable::FeedMapper do
|
|
4
|
+
let(:feed_endpoint) { "#{Rails.root}/spec/support/" }
|
|
5
|
+
|
|
6
|
+
before { allow(G5Updatable).to receive(:feed_endpoint) { feed_endpoint } }
|
|
7
|
+
|
|
8
|
+
describe "#client" do
|
|
9
|
+
subject(:client_mapper) { described_class.new(client_identifier).client }
|
|
10
|
+
|
|
11
|
+
context "a nil identifier" do
|
|
12
|
+
let(:client_identifier) { nil }
|
|
13
|
+
|
|
14
|
+
before { allow(G5Updatable).to receive(:client_identifier) { nil } }
|
|
15
|
+
|
|
16
|
+
it "does nothing" do
|
|
17
|
+
expect(client_mapper).to be_nil
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
context "a given identifier" do
|
|
22
|
+
let(:client_identifier) { "client_feed.html" }
|
|
23
|
+
|
|
24
|
+
it "maps to the correct name" do
|
|
25
|
+
expect(client_mapper.name).to eq("Farmhouse")
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "maps to the correct vertical" do
|
|
29
|
+
expect(client_mapper.vertical).to eq("Apartments")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "maps to the correct domain" do
|
|
33
|
+
expect(client_mapper.domain).to eq("http://farmhouseapartments.com/")
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "maps to the correct type" do
|
|
37
|
+
expect(client_mapper.type).to eq("MultiDomainClient")
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe "#locations" do
|
|
43
|
+
subject(:location_mapper) { described_class.new(client_identifier).locations.first }
|
|
44
|
+
|
|
45
|
+
context "a nil identifier" do
|
|
46
|
+
let(:client_identifier) { nil }
|
|
47
|
+
|
|
48
|
+
before { allow(G5Updatable).to receive(:client_identifier) { nil } }
|
|
49
|
+
|
|
50
|
+
it "does nothing" do
|
|
51
|
+
expect(location_mapper).to be_nil
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
context "a given identifier" do
|
|
56
|
+
let(:client_identifier) { "client_feed.html" }
|
|
57
|
+
|
|
58
|
+
it "maps to the correct urn" do
|
|
59
|
+
expect(location_mapper.urn).to eq("g5-cl-1qrcyt46-hollywood")
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it "maps to the correct name" do
|
|
63
|
+
expect(location_mapper.name).to eq("Hollywood")
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it "maps to the correct domain" do
|
|
67
|
+
expect(location_mapper.domain).to eq("http://www.hollywood.com/")
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it "maps to the correct street_address" do
|
|
71
|
+
expect(location_mapper.street_address).to eq("4567 Storage Drive Unit 5")
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
it "maps to the correct state" do
|
|
75
|
+
expect(location_mapper.state).to eq("CA")
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
it "maps to the correct city" do
|
|
79
|
+
expect(location_mapper.city).to eq("Hollywood")
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it "maps to the correct neighborhood" do
|
|
83
|
+
expect(location_mapper.neighborhood).to eq("Westwood")
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
it "maps to the correct postal_code" do
|
|
87
|
+
expect(location_mapper.postal_code).to eq("80229")
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
it "maps to the correct phone_number" do
|
|
91
|
+
expect(location_mapper.phone_number).to eq("555-555-5555")
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
it "maps to the correct corporate" do
|
|
95
|
+
expect(location_mapper.corporate).to eq("False")
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
it "maps to the correct floor_plans" do
|
|
99
|
+
expect(location_mapper.floor_plans).to eq("2 Bedroom 2 Bath, Studio")
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
it "maps to the correct primary_amenity" do
|
|
103
|
+
expect(location_mapper.primary_amenity).to eq("Secret Passages")
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
it "maps to the correct qualifier" do
|
|
107
|
+
expect(location_mapper.qualifier).to eq("Luxury")
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
it "maps to the correct primary_landmark" do
|
|
111
|
+
expect(location_mapper.primary_landmark).to eq("Seattle Grace Hospital")
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe G5Updatable::LocationsUpdater do
|
|
4
|
+
let(:feed_endpoint) { "#{Rails.root}/spec/support/" }
|
|
5
|
+
let(:client_identifier) { "updated_client_feed.html" }
|
|
6
|
+
let(:locations) { G5Updatable::FeedMapper.new(client_identifier).locations }
|
|
7
|
+
let(:g5_location) { locations.first }
|
|
8
|
+
let(:urn) { g5_location.uid.to_s.split("/").last }
|
|
9
|
+
let(:updater) { described_class.new(locations) }
|
|
10
|
+
|
|
11
|
+
before do
|
|
12
|
+
allow(G5Updatable).to receive(:feed_endpoint) { feed_endpoint }
|
|
13
|
+
allow(G5Updatable).to receive(:client_identifier) { client_identifier }
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
describe "#update" do
|
|
17
|
+
let!(:location) do
|
|
18
|
+
Fabricate(:location, urn: urn, name: "Foo", neighborhood: "Eastside")
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
context "update locations disabled" do
|
|
22
|
+
before { allow(G5Updatable).to receive(:update_locations) { false } }
|
|
23
|
+
|
|
24
|
+
it "does not update existing locations" do
|
|
25
|
+
expect(locations).to_not receive(:save)
|
|
26
|
+
updater.update
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "creates new locations" do
|
|
30
|
+
expect { updater.update }.to change { Location.all.size }.from(1).to(2)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
context "update locations enabled" do
|
|
35
|
+
context "default parameters" do
|
|
36
|
+
it "updates the name attribute" do
|
|
37
|
+
expect { updater.update }.to change { location.reload.name }.
|
|
38
|
+
from("Foo").to("Hollywood")
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "does not update other attributes" do
|
|
42
|
+
expect { updater.update }.not_to change { location.reload.neighborhood }
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "creates new locations" do
|
|
46
|
+
expect { updater.update }.to change { Location.all.size }.from(1).to(2)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
context "custom parameters" do
|
|
51
|
+
before do
|
|
52
|
+
allow(G5Updatable).to receive(:location_parameters) { [:name, :neighborhood] }
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "updates the name attribute" do
|
|
56
|
+
expect { updater.update }.to change { location.reload.name }.
|
|
57
|
+
from("Foo").to("Hollywood")
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
it "updates other attributes" do
|
|
61
|
+
expect { updater.update }.to change { location.reload.neighborhood }.
|
|
62
|
+
from("Eastside").to("River West")
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "creates new locations" do
|
|
66
|
+
expect { updater.update }.to change { Location.all.size }.from(1).to(2)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
require "generators/g5_updatable/install/install_generator"
|
|
3
|
+
|
|
4
|
+
describe G5Updatable::InstallGenerator, type: :generator do
|
|
5
|
+
destination File.expand_path("../../../tmp", __FILE__)
|
|
6
|
+
arguments %w()
|
|
7
|
+
|
|
8
|
+
before do
|
|
9
|
+
prepare_destination
|
|
10
|
+
setup_routes
|
|
11
|
+
run_generator
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "should copy the g5_updatable initializer" do
|
|
15
|
+
expect(destination_root).to have_structure {
|
|
16
|
+
directory "config" do
|
|
17
|
+
directory "initializers" do
|
|
18
|
+
file "g5_updatable.rb" do
|
|
19
|
+
contains "G5Updatable.setup do |config|"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
}
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should mount the engine" do
|
|
27
|
+
expect(destination_root).to have_structure {
|
|
28
|
+
directory "config" do
|
|
29
|
+
file "routes.rb" do
|
|
30
|
+
contains "mount G5Updatable::Engine => '/g5_updatable'"
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
}
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def setup_routes
|
|
37
|
+
routes = <<-END
|
|
38
|
+
Rails.application.routes.draw do
|
|
39
|
+
resource :home, only: [:show, :index]
|
|
40
|
+
|
|
41
|
+
match "/some_path", to: "controller#action", as: :my_alias
|
|
42
|
+
|
|
43
|
+
root to: "home#index"
|
|
44
|
+
end
|
|
45
|
+
END
|
|
46
|
+
config_dir = File.join(destination_root, "config")
|
|
47
|
+
|
|
48
|
+
FileUtils.mkdir_p(config_dir)
|
|
49
|
+
File.write(File.join(config_dir, "routes.rb"), routes)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
G5Updatable.setup do |config|
|
|
2
|
+
# base path to the G5 Hub
|
|
3
|
+
#
|
|
4
|
+
#config.feed_endpoint = "..."
|
|
5
|
+
|
|
6
|
+
# identifier of the client (urn)
|
|
7
|
+
#
|
|
8
|
+
#config.client_identifier = "..."
|
|
9
|
+
|
|
10
|
+
# default is true. When set to true, existing locations in your app will be
|
|
11
|
+
# updated with any changes made to the hub. If set to false, existing locations
|
|
12
|
+
# will be skipped and only newly added locations will be created.
|
|
13
|
+
#
|
|
14
|
+
#config.update_locations = true
|
|
15
|
+
|
|
16
|
+
# default is false. When set to true, client data will update.
|
|
17
|
+
#
|
|
18
|
+
#config.update_client = false
|
|
19
|
+
|
|
20
|
+
# default is [:name]. A whitlist of parameters to create/update on the model
|
|
21
|
+
#config.location_parameters = [:name]
|
|
22
|
+
|
|
23
|
+
# default is [:name]. A whitlist of parameters to update on the model
|
|
24
|
+
#config.client_parameters = [:name]
|
|
25
|
+
end
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
|
2
|
+
ENV["RAILS_ENV"] ||= 'test'
|
|
3
|
+
|
|
4
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
|
5
|
+
require 'rspec/rails'
|
|
6
|
+
|
|
7
|
+
Rails.backtrace_cleaner.remove_silencers!
|
|
8
|
+
|
|
9
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
|
10
|
+
# in spec/support/ and its subdirectories.
|
|
11
|
+
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
|
|
12
|
+
|
|
13
|
+
# Checks for pending migrations before tests are run.
|
|
14
|
+
# If you are not using ActiveRecord, you can remove this line.
|
|
15
|
+
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
|
|
16
|
+
|
|
17
|
+
RSpec.configure do |config|
|
|
18
|
+
# ## Mock Framework
|
|
19
|
+
#
|
|
20
|
+
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
|
21
|
+
#
|
|
22
|
+
# config.mock_with :mocha
|
|
23
|
+
# config.mock_with :flexmock
|
|
24
|
+
# config.mock_with :rr
|
|
25
|
+
|
|
26
|
+
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
|
27
|
+
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
|
28
|
+
|
|
29
|
+
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
|
30
|
+
# examples within a transaction, remove the following line or assign false
|
|
31
|
+
# instead of true.
|
|
32
|
+
config.use_transactional_fixtures = true
|
|
33
|
+
|
|
34
|
+
# If true, the base class of anonymous controllers will be inferred
|
|
35
|
+
# automatically. This will be the default behavior in future versions of
|
|
36
|
+
# rspec-rails.
|
|
37
|
+
config.infer_base_class_for_anonymous_controllers = false
|
|
38
|
+
|
|
39
|
+
# Run specs in random order to surface order dependencies. If you find an
|
|
40
|
+
# order dependency and want to debug it, you can fix the order by providing
|
|
41
|
+
# the seed, which is printed after each run.
|
|
42
|
+
# --seed 1234
|
|
43
|
+
config.order = "random"
|
|
44
|
+
end
|