ardb 0.28.1 → 0.29.2
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.
- checksums.yaml +7 -7
- data/.l.yml +8 -0
- data/.rubocop.yml +3 -0
- data/.t.yml +6 -0
- data/Gemfile +21 -8
- data/README.md +252 -3
- data/ardb.gemspec +14 -10
- data/bin/ardb +3 -1
- data/lib/ardb.rb +110 -80
- data/lib/ardb/adapter/base.rb +73 -47
- data/lib/ardb/adapter/mysql.rb +4 -17
- data/lib/ardb/adapter/postgresql.rb +51 -46
- data/lib/ardb/adapter/sqlite.rb +11 -15
- data/lib/ardb/adapter_spy.rb +18 -30
- data/lib/ardb/cli.rb +29 -24
- data/lib/ardb/cli/clirb.rb +19 -17
- data/lib/ardb/cli/commands.rb +308 -129
- data/lib/ardb/db_tests.rb +4 -4
- data/lib/ardb/default_order_by.rb +13 -21
- data/lib/ardb/migration.rb +15 -16
- data/lib/ardb/record_spy.rb +46 -61
- data/lib/ardb/relation_spy.rb +27 -31
- data/lib/ardb/require_autoloaded_active_record_files.rb +174 -58
- data/lib/ardb/test_helpers.rb +13 -14
- data/lib/ardb/use_db_default.rb +10 -19
- data/lib/ardb/version.rb +3 -1
- data/script/determine_autoloaded_active_record_files.rb +31 -24
- data/test/helper.rb +6 -13
- data/test/support/factory.rb +4 -3
- data/test/support/fake_schema.rb +3 -1
- data/test/support/postgresql/migrations/{.gitkeep → .keep} +0 -0
- data/test/support/postgresql/schema.rb +2 -1
- data/test/support/postgresql/setup_test_db.rb +17 -15
- data/test/support/relative_require_test_db_file.rb +1 -0
- data/test/support/require_test_db_file.rb +1 -0
- data/test/system/.keep +0 -0
- data/test/unit/adapter/base_tests.rb +83 -55
- data/test/unit/adapter/mysql_tests.rb +4 -19
- data/test/unit/adapter/postgresql_tests.rb +21 -30
- data/test/unit/adapter/sqlite_tests.rb +5 -11
- data/test/unit/adapter_spy_tests.rb +6 -17
- data/test/unit/ardb_tests.rb +81 -53
- data/test/unit/cli_tests.rb +232 -157
- data/test/unit/db_tests_tests.rb +7 -7
- data/test/unit/default_order_by_tests.rb +21 -20
- data/test/unit/migration_tests.rb +17 -18
- data/test/unit/record_spy_tests.rb +36 -34
- data/test/unit/relation_spy_tests.rb +40 -63
- data/test/unit/test_helpers_tests.rb +7 -15
- data/test/unit/use_db_default_tests.rb +22 -17
- metadata +117 -84
- data/lib/ardb/has_slug.rb +0 -107
- data/lib/ardb/migration_helpers.rb +0 -77
- data/lib/ardb/pg_json.rb +0 -90
- data/test/support/postgresql/pg_json_migrations/20160519133432_create_pg_json_migrate_test.rb +0 -13
- data/test/system/pg_json_tests.rb +0 -85
- data/test/unit/has_slug_tests.rb +0 -341
- data/test/unit/migration_helpers_tests.rb +0 -65
- data/test/unit/pg_json_tests.rb +0 -39
@@ -1,65 +0,0 @@
|
|
1
|
-
require 'assert'
|
2
|
-
require 'ardb/migration_helpers'
|
3
|
-
|
4
|
-
require 'ardb/adapter_spy'
|
5
|
-
|
6
|
-
module Ardb::MigrationHelpers
|
7
|
-
|
8
|
-
class UnitTests < Assert::Context
|
9
|
-
desc "Ardb migration helpers"
|
10
|
-
subject{ Ardb::MigrationHelpers }
|
11
|
-
|
12
|
-
should have_imeths :foreign_key, :drop_foreign_key, :remove_column_with_fk
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
class ForeignKeyTests < UnitTests
|
17
|
-
desc "ForeignKey handler"
|
18
|
-
setup do
|
19
|
-
@adapter_spy = nil
|
20
|
-
Assert.stub(Ardb::Adapter, :new) do |*args|
|
21
|
-
@adapter_spy = Ardb::AdapterSpy.new(*args)
|
22
|
-
end
|
23
|
-
|
24
|
-
@fk = ForeignKey.new('fromtbl', 'fromcol', 'totbl')
|
25
|
-
end
|
26
|
-
subject{ @fk }
|
27
|
-
|
28
|
-
should have_readers :from_table, :from_column, :to_table, :to_column
|
29
|
-
should have_readers :name, :adapter
|
30
|
-
should have_imeths :add_sql, :drop_sql
|
31
|
-
|
32
|
-
should "know its from table/column and to table" do
|
33
|
-
assert_equal 'fromtbl', subject.from_table
|
34
|
-
assert_equal 'fromcol', subject.from_column
|
35
|
-
assert_equal 'totbl', subject.to_table
|
36
|
-
end
|
37
|
-
|
38
|
-
should "default its to column" do
|
39
|
-
assert_equal 'id', subject.to_column
|
40
|
-
end
|
41
|
-
|
42
|
-
should "default its name" do
|
43
|
-
exp_name = "fk_fromtbl_fromcol"
|
44
|
-
assert_equal exp_name, subject.name
|
45
|
-
end
|
46
|
-
|
47
|
-
should "know its adapter" do
|
48
|
-
assert_not_nil @adapter_spy
|
49
|
-
assert_equal Ardb.config, @adapter_spy.config
|
50
|
-
assert_equal @adapter_spy, subject.adapter
|
51
|
-
end
|
52
|
-
|
53
|
-
should "generate appropriate foreign key sql" do
|
54
|
-
exp = "FAKE ADD FOREIGN KEY SQL fromtbl fromcol " \
|
55
|
-
"totbl id fk_fromtbl_fromcol"
|
56
|
-
assert_equal exp, subject.add_sql
|
57
|
-
|
58
|
-
exp = "FAKE DROP FOREIGN KEY SQL fromtbl fromcol " \
|
59
|
-
"totbl id fk_fromtbl_fromcol"
|
60
|
-
assert_equal exp, subject.drop_sql
|
61
|
-
end
|
62
|
-
|
63
|
-
end
|
64
|
-
|
65
|
-
end
|
data/test/unit/pg_json_tests.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
require 'assert'
|
2
|
-
require 'ardb/pg_json'
|
3
|
-
|
4
|
-
module Ardb; end
|
5
|
-
module Ardb::PgJson
|
6
|
-
|
7
|
-
class UnitTests < Assert::Context
|
8
|
-
desc "Ardb postgresql json shim"
|
9
|
-
setup do
|
10
|
-
@connection_adapters = ActiveRecord::ConnectionAdapters
|
11
|
-
end
|
12
|
-
subject{ @connection_adapters }
|
13
|
-
|
14
|
-
should "update active record postgres adapter to support json columns" do
|
15
|
-
adapter_class = subject::PostgreSQLAdapter
|
16
|
-
exp = { :name => 'json' }
|
17
|
-
assert_equal exp, adapter_class::NATIVE_DATABASE_TYPES[:json]
|
18
|
-
exp = { :name => 'jsonb' }
|
19
|
-
assert_equal exp, adapter_class::NATIVE_DATABASE_TYPES[:jsonb]
|
20
|
-
end
|
21
|
-
|
22
|
-
should "update active record postgres column to support json columns" do
|
23
|
-
column_class = subject::PostgreSQLColumn
|
24
|
-
default = Factory.boolean ? "'{}'::json" : "'{}'::jsonb"
|
25
|
-
assert_equal '{}', column_class.extract_value_from_default(default)
|
26
|
-
default = Factory.boolean ? "'[]'::json" : "'[]'::jsonb"
|
27
|
-
assert_equal '[]', column_class.extract_value_from_default(default)
|
28
|
-
|
29
|
-
column = column_class.new(Factory.string, Factory.string)
|
30
|
-
assert_equal :json, column.send(:simplified_type, 'json')
|
31
|
-
assert_equal :jsonb, column.send(:simplified_type, 'jsonb')
|
32
|
-
end
|
33
|
-
|
34
|
-
# Note: The rest of the postgresql json shim logic is tested in the pg json
|
35
|
-
# system tests
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|