OSDN Git Service

Spianch test for group dashboard
authorDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>
Wed, 3 Oct 2012 10:42:17 +0000 (13:42 +0300)
committerDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>
Wed, 3 Oct 2012 10:42:17 +0000 (13:42 +0300)
app/models/group.rb
app/views/groups/show.html.haml
app/views/snippets/show.html.haml
features/dashboard/dashboard.feature
features/group/group.feature [new file with mode: 0644]
features/steps/group/group.rb [new file with mode: 0644]

index 4328306..1bb805e 100644 (file)
@@ -22,6 +22,10 @@ class Group < ActiveRecord::Base
 
   delegate :name, to: :owner, allow_nil: true, prefix: true
 
+  def self.search query
+    where("name like :query or code like :query", query: "%#{query}%")
+  end
+
   def to_param
     code
   end
index 074288a..cd86a01 100644 (file)
@@ -1,8 +1,10 @@
 .projects
   .activities.span8
-    .back_link
-      = link_to dashboard_path do
-        &larr; To dashboard
+    = link_to dashboard_path, class: 'btn very_small' do
+      &larr; To dashboard
+    &nbsp;
+    %span.cgray Events and projects are filtered in scope of group
+    %hr
     = render 'shared/no_ssh'
     - if @events.any?
       .content_list= render @events
index 4188a9f..1b8701e 100644 (file)
@@ -7,14 +7,17 @@
     = link_to "Edit", edit_project_snippet_path(@project, @snippet), class: "btn small right"
 
 %br
-.file_holder
-  .file_title
-    %i.icon-file
-    %strong= @snippet.file_name
-    %span.options
-      = link_to "raw", raw_project_snippet_path(@project, @snippet), class: "btn very_small", target: "_blank"
-  .file_content.code
-    %div{class: current_user.dark_scheme ? "black" : ""}
-      = raw @snippet.colorize(options: { linenos: 'True'})
+%div
+  .file_holder
+    .file_title
+      %i.icon-file
+      %strong= @snippet.file_name
+      %span.options
+        = link_to "raw", raw_project_snippet_path(@project, @snippet), class: "btn very_small", target: "_blank"
+    .file_content.code
+      %div{class: current_user.dark_scheme ? "black" : ""}
+        = raw @snippet.colorize(options: { linenos: 'True'})
 
-= render "notes/notes_with_form", tid: @snippet.id, tt: "snippet"
+
+%div
+  = render "notes/notes_with_form", tid: @snippet.id, tt: "snippet"
index 40217a7..24296f4 100644 (file)
@@ -10,6 +10,11 @@ Feature: Dashboard
     Then I should see "Shop" project link
     Then I should see project "Shop" activity feed
 
+  Scenario: I should see groups list
+    Given I have group with projects
+    And I visit dashboard page
+    Then I should see groups list
+
   Scenario: I should see last push widget
     Then I should see last push widget
     And I click "Create Merge Request" link
diff --git a/features/group/group.feature b/features/group/group.feature
new file mode 100644 (file)
index 0000000..dbddb92
--- /dev/null
@@ -0,0 +1,9 @@
+Feature: Groups
+  Background:
+    Given I sign in as a user
+    And I have group with projects
+
+  Scenario: I should see group dashboard list
+    When I visit group page
+    Then I should see projects list
+    And I should see projects activity feed
diff --git a/features/steps/group/group.rb b/features/steps/group/group.rb
new file mode 100644 (file)
index 0000000..798c62c
--- /dev/null
@@ -0,0 +1,32 @@
+class Groups < Spinach::FeatureSteps
+  include SharedAuthentication
+  include SharedPaths
+
+  When 'I visit group page' do
+    visit group_path(current_group)
+  end
+
+  Then 'I should see projects list' do
+    current_user.projects.each do |project|
+      page.should have_link project.name
+    end
+  end
+
+  And 'I have group with projects' do
+    @group   = Factory :group
+    @project = Factory :project, group: @group
+    @event   = Factory :closed_issue_event, project: @project
+
+    @project.add_access current_user, :admin
+  end
+
+  And 'I should see projects activity feed' do
+    page.should have_content 'closed issue'
+  end
+
+  protected
+
+  def current_group
+    @group ||= Group.first
+  end
+end