diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2017-06-02 04:43:08 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2017-10-05 17:38:07 +0900 |
commit | 563c16c7cbccc2f3a088139bfb855865a51b027e (patch) | |
tree | 101561dd7e69065f482ea1f0c9a7fbf98eaaf11b /activerecord/test | |
parent | 214dc7d82d8a87914d5d426b7e8460300000acc2 (diff) | |
download | rails-563c16c7cbccc2f3a088139bfb855865a51b027e.tar.gz rails-563c16c7cbccc2f3a088139bfb855865a51b027e.tar.bz2 rails-563c16c7cbccc2f3a088139bfb855865a51b027e.zip |
Add JSON attribute test cases for SQLite3 adapter
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/adapters/sqlite3/json_test.rb | 29 | ||||
-rw-r--r-- | activerecord/test/cases/json_shared_test_cases.rb | 2 |
2 files changed, 31 insertions, 0 deletions
diff --git a/activerecord/test/cases/adapters/sqlite3/json_test.rb b/activerecord/test/cases/adapters/sqlite3/json_test.rb new file mode 100644 index 0000000000..568a524058 --- /dev/null +++ b/activerecord/test/cases/adapters/sqlite3/json_test.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +require "cases/helper" +require "cases/json_shared_test_cases" + +class SQLite3JSONTest < ActiveRecord::SQLite3TestCase + include JSONSharedTestCases + + def setup + super + @connection.create_table("json_data_type") do |t| + t.column "payload", :json, default: {} + t.column "settings", :json + end + end + + def test_default + @connection.add_column "json_data_type", "permissions", column_type, default: { "users": "read", "posts": ["read", "write"] } + klass.reset_column_information + + assert_equal({ "users" => "read", "posts" => ["read", "write"] }, klass.column_defaults["permissions"]) + assert_equal({ "users" => "read", "posts" => ["read", "write"] }, klass.new.permissions) + end + + private + def column_type + :json + end +end diff --git a/activerecord/test/cases/json_shared_test_cases.rb b/activerecord/test/cases/json_shared_test_cases.rb index 56ec8c8a82..a71485982c 100644 --- a/activerecord/test/cases/json_shared_test_cases.rb +++ b/activerecord/test/cases/json_shared_test_cases.rb @@ -30,6 +30,7 @@ module JSONSharedTestCases end def test_change_table_supports_json + skip unless @connection.supports_json? @connection.change_table("json_data_type") do |t| t.public_send column_type, "users" end @@ -40,6 +41,7 @@ module JSONSharedTestCases end def test_schema_dumping + skip unless @connection.supports_json? output = dump_table_schema("json_data_type") assert_match(/t\.#{column_type}\s+"settings"/, output) end |