From 89aeed183ccbadc9580945a68b8df83f50856c2c Mon Sep 17 00:00:00 2001
From: James Lopez <james@jameslopez.es>
Date: Tue, 26 Jan 2016 12:16:47 +0100
Subject: [PATCH] feature and fix for 500 on group missing

---
 app/controllers/groups_controller.rb | 1 +
 features/explore/groups.feature      | 5 +++++
 features/steps/explore/groups.rb     | 4 ++++
 3 files changed, 10 insertions(+)

diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index fb26a4e6fc3..828e5509262 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -81,6 +81,7 @@ class GroupsController < Groups::ApplicationController
 
   def group
     @group ||= Group.find_by(path: params[:id])
+    render_404 unless @group
   end
 
   def load_projects
diff --git a/features/explore/groups.feature b/features/explore/groups.feature
index 5fc9b135601..7529dcc3d9d 100644
--- a/features/explore/groups.feature
+++ b/features/explore/groups.feature
@@ -3,6 +3,11 @@ Feature: Explore Groups
   Background:
     Given group "TestGroup" has private project "Enterprise"
 
+  Scenario: I should not see a group if it does not exist
+    When I sign in as a user
+    And I visit group "NonExistentGroup" page
+    Then page status code should be 404
+
   Scenario: I should see group with private and internal projects as user
     Given group "TestGroup" has internal project "Internal"
     When I sign in as a user
diff --git a/features/steps/explore/groups.rb b/features/steps/explore/groups.rb
index 87f32e70d59..68c473e7b29 100644
--- a/features/steps/explore/groups.rb
+++ b/features/steps/explore/groups.rb
@@ -26,6 +26,10 @@ class Spinach::Features::ExploreGroups < Spinach::FeatureSteps
     visit group_path(Group.find_by(name: "TestGroup"))
   end
 
+  step 'I visit group "NonExistentGroup" page' do
+    visit group_path(-1)
+  end
+
   step 'I visit group "TestGroup" issues page' do
     visit issues_group_path(Group.find_by(name: "TestGroup"))
   end
-- 
GitLab