aboutsummaryrefslogtreecommitdiffstats
path: root/spec/lib/af83
diff options
context:
space:
mode:
authorRobertDober2017-04-14 17:46:54 +0200
committerRobert2017-04-18 20:05:36 +0200
commitd582f2868c0d8af42c18257f83974afbae619583 (patch)
tree4b0bf6e2f8af332837dea443543d77170ae5ffee /spec/lib/af83
parent33e796dc89b36f7c57adb9d462c0cc35a15be623 (diff)
downloadchouette-core-d582f2868c0d8af42c18257f83974afbae619583.tar.bz2
clone_schema fixed -> lib/sql/clone_schema.sql; lib/af83/stored_procedures.rb for sql stored procedure management; Refs #2864
Diffstat (limited to 'spec/lib/af83')
-rw-r--r--spec/lib/af83/stored_procedure_spec.rb20
-rw-r--r--spec/lib/af83/stored_procedures/clone_schema_spec.rb19
2 files changed, 39 insertions, 0 deletions
diff --git a/spec/lib/af83/stored_procedure_spec.rb b/spec/lib/af83/stored_procedure_spec.rb
new file mode 100644
index 000000000..2530d7fc1
--- /dev/null
+++ b/spec/lib/af83/stored_procedure_spec.rb
@@ -0,0 +1,20 @@
+require 'rails_helper'
+
+RSpec.describe StoredProcedures do
+
+
+ before do
+ described_class.create_stored_procedure(:clone_schema)
+ end
+
+ let( :source_schema_name ){ "parissudest201604" }
+ let( :dest_schema_name ){ "#{source_schema_name}_v1"}
+
+ context "Error cases" do
+ it "raises an error if stored procedure does not exist" do
+ expect{ described_class.invoke_stored_procedure(:idonotexist) }
+ .to raise_error(ArgumentError, %r{no such stored procedure "idonotexist"})
+ end
+ end
+
+end
diff --git a/spec/lib/af83/stored_procedures/clone_schema_spec.rb b/spec/lib/af83/stored_procedures/clone_schema_spec.rb
new file mode 100644
index 000000000..646e97d9f
--- /dev/null
+++ b/spec/lib/af83/stored_procedures/clone_schema_spec.rb
@@ -0,0 +1,19 @@
+require 'rails_helper'
+
+RSpec.describe StoredProcedures do
+
+ include Support::PGCatalog
+ context "clone_schema creates correct table in dest schema" do
+ before do
+ drop_schema!(dest_schema_name)
+ end
+
+ it "creates the schema" do
+ expect( get_fks!(dest_schema_name, "access_links") ).to be_empty
+ described_class.invoke_stored_procedure(:clone_schema, source_schema_name, dest_schema_name, true)
+ expect( get_fks!(dest_schema_name, "access_links") )
+ .to eq( [{"constraint_name"=>"aclk_acpt_fkey",
+ "constraint_def"=>"FOREIGN KEY (access_point_id) REFERENCES parissudest201604_v1.access_points(id)"}])
+ end
+ end
+end