summaryrefslogtreecommitdiff
path: root/spec/support/active_record_enum.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/active_record_enum.rb')
-rw-r--r--spec/support/active_record_enum.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/spec/support/active_record_enum.rb b/spec/support/active_record_enum.rb
new file mode 100644
index 00000000000..fb1189c7f17
--- /dev/null
+++ b/spec/support/active_record_enum.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+shared_examples 'having unique enum values' do
+ described_class.defined_enums.each do |name, enum|
+ it "has unique values in #{name.inspect}" do
+ duplicated = enum.group_by(&:last).select { |key, value| value.size > 1 }
+
+ expect(duplicated).to be_empty,
+ "Duplicated values detected: #{duplicated.values.map(&Hash.method(:[]))}"
+ end
+ end
+end