From 7fb2d94e56e2e74ec00a5c221d9aaa494222a573 Mon Sep 17 00:00:00 2001
From: "Z.J. van de Weg" <git@zjvandeweg.nl>
Date: Tue, 7 Mar 2017 15:20:22 +0100
Subject: [PATCH] Namespace can have only one chat team

---
 app/models/chat_team.rb       | 1 +
 spec/factories/chat_teams.rb  | 9 +++++++++
 spec/models/chat_team_spec.rb | 5 +++++
 3 files changed, 15 insertions(+)
 create mode 100644 spec/factories/chat_teams.rb

diff --git a/app/models/chat_team.rb b/app/models/chat_team.rb
index 7952141a0d6..c52b6f15913 100644
--- a/app/models/chat_team.rb
+++ b/app/models/chat_team.rb
@@ -1,5 +1,6 @@
 class ChatTeam < ActiveRecord::Base
   validates :team_id, presence: true
+  validates :namespace, uniqueness: true
 
   belongs_to :namespace
 end
diff --git a/spec/factories/chat_teams.rb b/spec/factories/chat_teams.rb
new file mode 100644
index 00000000000..82f44fa3d15
--- /dev/null
+++ b/spec/factories/chat_teams.rb
@@ -0,0 +1,9 @@
+FactoryGirl.define do
+  factory :chat_team, class: ChatTeam do
+    sequence :team_id do |n|
+      "abcdefghijklm#{n}"
+    end
+
+    namespace factory: :group
+  end
+end
diff --git a/spec/models/chat_team_spec.rb b/spec/models/chat_team_spec.rb
index 1aab161ec13..5283561a83f 100644
--- a/spec/models/chat_team_spec.rb
+++ b/spec/models/chat_team_spec.rb
@@ -1,9 +1,14 @@
 require 'spec_helper'
 
 describe ChatTeam, type: :model do
+  subject { create(:chat_team) }
+
   # Associations
   it { is_expected.to belong_to(:namespace) }
 
+  # Validations
+  it { is_expected.to validate_uniqueness_of(:namespace) }
+
   # Fields
   it { is_expected.to respond_to(:name) }
   it { is_expected.to respond_to(:team_id) }
-- 
GitLab