Skip to content

Commit ab039e4

Browse files
committed
Add specs
1 parent df9bb23 commit ab039e4

File tree

5 files changed

+66
-0
lines changed

5 files changed

+66
-0
lines changed

activerecord-analyze.gemspec

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,7 @@ Gem::Specification.new do |gem|
1616
gem.require_paths = ["lib"]
1717
gem.license = "MIT"
1818
gem.add_dependency "rails", ">= 5.1.0"
19+
gem.add_development_dependency "rake"
20+
gem.add_development_dependency "pg"
21+
gem.add_development_dependency "rspec"
1922
end

docker-compose.yml.sample

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
version: '3'
2+
3+
services:
4+
postgres:
5+
image: postgres:11.5-alpine
6+
environment:
7+
POSTGRES_USER: postgres
8+
POSTGRES_DB: ruby-pg-extras-test
9+
POSTGRES_PASSWORD: secret
10+
ports:
11+
- '5432:5432'

spec/main_spec.rb

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# frozen_string_literal: true
2+
3+
require 'spec_helper'
4+
require "migrations/create_users_migration.rb"
5+
6+
class User < ActiveRecord::Base; end
7+
8+
describe "ActiveRecord analyze" do
9+
before(:all) do
10+
ActiveRecord::Base.establish_connection(
11+
ENV.fetch("DATABASE_URL")
12+
)
13+
14+
@schema_migration = ActiveRecord::Base.connection.schema_migration
15+
ActiveRecord::Migrator.new(:up, [CreateUsers.new], @schema_migration).migrate
16+
end
17+
18+
describe "no opts" do
19+
it "works" do
20+
expect do
21+
User.all.analyze
22+
end.not_to raise_error
23+
end
24+
end
25+
26+
describe "format json" do
27+
it "works" do
28+
result = User.all.analyze(format: :json)
29+
expect(JSON.parse(result)[0].keys.sort).to eq [
30+
"Execution Time", "Plan", "Planning Time", "Triggers"
31+
]
32+
end
33+
end
34+
end
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class CreateUsers < ActiveRecord::Migration::Current
2+
def change
3+
create_table :users do |t|
4+
t.string :name
5+
t.string :email
6+
7+
t.timestamps
8+
end
9+
end
10+
end

spec/spec_helper.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# frozen_string_literal: true
2+
3+
require 'rubygems'
4+
require "active_record/railtie"
5+
require 'bundler/setup'
6+
require_relative '../lib/activerecord-analyze'
7+
8+
ENV["DATABASE_URL"] ||= "postgresql://postgres:secret@localhost:5432/activerecord-analyze-test"

0 commit comments

Comments
 (0)