-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinline-activerecord.rb
94 lines (78 loc) · 2.09 KB
/
inline-activerecord.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
begin
require "bundler/inline"
rescue LoadError => e
$stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
raise e
end
a = gemfile(true) do
source "https://rubygems.org"
gem "activerecord", "5.2.0"
gem "sqlite3", "1.3.13"
gem "rake", "~> 10.0"
gem "rspec", "~> 3.0"
gem "faker"
gem "factory_bot"
end
require "active_record"
require "rspec/autorun"
def load_active_record_tasks(database_configuration:, root:, db_dir: root, migrations_paths: [root], env: "development", seed_loader: nil)
include ActiveRecord::Tasks
DatabaseTasks.database_configuration = database_configuration
DatabaseTasks.root = root
DatabaseTasks.db_dir = db_dir
DatabaseTasks.migrations_paths = migrations_paths
DatabaseTasks.env = env
DatabaseTasks.seed_loader = seed_loader
task :environment do
ActiveRecord::Base.configurations = DatabaseTasks.database_configuration
ActiveRecord::Base.establish_connection DatabaseTasks.env.to_sym
end
load 'active_record/railties/databases.rake'
end
root = Pathname.new(".")
sqlite3_config = {
"development" => {
"adapter" => "sqlite3",
"database" => "development.sqlite3"
}
}
load_active_record_tasks(database_configuration: sqlite3_config, root: root)
def define_db
ActiveRecord::Schema.define do
create_table :users do |t|
t.timestamps
t.string :email
end
end
end
class User < ActiveRecord::Base; end
FactoryBot.define do
factory :user do
id { Faker::Number.unique.number(digits: 9) }
email { Faker::Internet.email }
end
end
RSpec.configure do |config|
config.formatter = "documentation"
config.order = "rand"
config.include FactoryBot::Syntax::Methods
config.before(:all) do
Rake::Task["db:drop"].invoke
Rake::Task["db:drop"].reenable
Rake::Task["db:create"].invoke
Rake::Task["db:create"].reenable
define_db
end
config.after(:all) do
Rake::Task["db:drop"].invoke
Rake::Task["db:drop"].reenable
end
end
RSpec.describe "User", :aggregate_failures do
before do
create(:user)
end
it "exists" do
expect(User.first).to be
end
end