Commit c6298678f5032823130f5b2eb6fc1810cbb01a10

Authored by Dmitriy Zaporozhets
1 parent 14d0ef8f

use ui-box as for all

app/assets/stylesheets/gitlab_bootstrap/blocks.scss
1 1 /**
2 2 * ===================================
3   - * Contain 3 main UI block elements:
4   - * .main_box - for show pages
5   - * .ui-box - for simple block & widgets
  3 + * Contain UI block elements:
  4 + * .ui-box - for any block & widgets
6 5 * ===================================
7 6 */
8 7  
9 8 /**
10   - * UI box element
11   - * contains top, middle, bottom blocks
  9 + * UI Block
12 10 *
13 11 */
14   -.main_box {
15   - @extend .borders;
16   - @extend .prepend-top-20;
17   - @extend .append-bottom-20;
18   - border-width: 1px;
  12 +.ui-box {
  13 + background: #F9F9F9;
  14 + margin-bottom: 25px;
  15 + border: 1px solid #CCC;
19 16 @include solid-shade;
20 17  
  18 + &.ui-box-show {
  19 + margin:20px 0;
  20 + background: #FFF;
  21 + }
21 22  
22 23 img { max-width: 100%; }
23 24  
... ... @@ -27,9 +28,9 @@
27 28 }
28 29 }
29 30  
30   - .top_box_content,
31   - .middle_box_content,
32   - .bottom_box_content {
  31 + .ui-box-head,
  32 + .ui-box-body,
  33 + .ui-box-bottom {
33 34 padding: 15px;
34 35 word-wrap: break-word;
35 36  
... ... @@ -39,19 +40,25 @@
39 40 border: none;
40 41 padding: 0;
41 42 }
  43 +
  44 + .clearfix {
  45 + margin: 0;
  46 + }
42 47 }
43 48  
44   - .top_box_content {
  49 + .ui-box-head {
45 50 .box-title {
46 51 color: $style_color;
47 52 font-size: 18px;
48 53 font-weight: normal;
49 54 line-height: 28px;
50 55 }
  56 + h3 {
  57 + margin: 0;
  58 + }
51 59 }
52 60  
53   - .middle_box_content {
54   - @include border-radius(0);
  61 + .ui-box-body {
55 62 border: none;
56 63 font-size: 12px;
57 64 background-color: #f5f5f5;
... ... @@ -59,24 +66,9 @@
59 66 border-top: 1px solid #eee;
60 67 }
61 68  
62   - .bottom_box_content {
  69 + .ui-box-bottom {
63 70 border-top: 1px solid #eee;
64 71 }
65   -}
66   -
67   -/**
68   - * Big UI Block for show page content
69   - *
70   - */
71   -.ui-box {
72   - background: #F9F9F9;
73   - margin-bottom: 25px;
74   -
75   - border: 1px solid #eaeaea;
76   - @include border-radius(4px);
77   -
78   - border-color: #CCC;
79   - @include solid-shade;
80 72  
81 73 &.white {
82 74 background: #fff;
... ... @@ -86,45 +78,14 @@
86 78 margin: 0;
87 79 }
88 80  
89   - h5, .title {
  81 + .title {
90 82 padding: 0 10px;
91   - @include border-radius(4px 4px 0 0);
92 83 @include bg-gray-gradient;
93   - border-top: 1px solid #eaeaea;
94   - border-bottom: 1px solid #bbb;
  84 + border-bottom: 1px solid #CCC;
95 85  
96 86 > a {
97 87 text-shadow: 0 1px 1px #fff;
98 88 }
99   -
100   - &.small {
101   - line-height: 28px;
102   - font-size: 14px;
103   - line-height: 28px;
104   - text-shadow: 0 1px 1px white;
105   - }
106   -
107   - form {
108   - padding: 9px 0;
109   - margin: 0px;
110   - }
111   -
112   - .nav-pills {
113   - li {
114   - padding: 3px 0;
115   - &.active a { background-color: $style_color; }
116   - a {
117   - @include border-radius(7px);
118   - }
119   - }
120   - }
121   - }
122   -
123   - .bottom {
124   - @include bg-gray-gradient;
125   - @include border-radius(0 0 4px 4px);
126   - border-bottom: none;
127   - border-top: 1px solid #bbb;
128 89 }
129 90  
130 91 &.padded {
... ... @@ -143,6 +104,7 @@
143 104 color: #777;
144 105 }
145 106 }
  107 +
146 108 .row_title {
147 109 font-weight: bold;
148 110 color: #444;
... ... @@ -151,8 +113,4 @@
151 113 text-decoration: underline;
152 114 }
153 115 }
154   -
155   - .ui-box-body {
156   - padding: 10px;
157   - }
158 116 }
... ...
app/assets/stylesheets/gitlab_bootstrap/lists.scss
... ... @@ -23,14 +23,8 @@
23 23 border-bottom: 1px solid #ADF;
24 24 }
25 25  
26   - &:first-child {
27   - @include border-radius(4px 4px 0 0);
28   - border-top: none;
29   - }
30   -
31 26 &:last-child {
32   - @include border-radius(0 0 4px 4px);
33   - border: none;
  27 + border-bottom: none;
34 28 }
35 29  
36 30 .author { color: #999; }
... ...
app/assets/stylesheets/sections/commits.scss
1   -.commit-box {
2   - @extend .main_box;
3   -
4   - .commit-head {
5   - @extend .top_box_content;
6   -
7   - .commit-title {
8   - line-height: 26px;
9   - margin: 0;
10   - }
11   -
12   - .commit-description {
13   - font-size: 14px;
14   - border: none;
15   - background-color: white;
16   - padding-top: 10px;
17   - }
18   -
19   - .browse-button {
20   - @extend .btn;
21   - @extend .btn-small;
22   - float: right;
23   - }
24   - }
25   -
26   - .commit-info {
27   - @extend .middle_box_content;
28   - @extend .clearfix;
29   -
30   - .sha-block {
31   - text-align: right;
32   - &:first-child {
33   - padding-bottom: 6px;
34   - }
35   -
36   - a {
37   - border-bottom: 1px solid #aaa;
38   - margin-left: 9px;
39   - }
40   - }
41   -
42   - &.merge-commit .sha-block {
43   - clear: right;
44   - }
45   -
46   - .committer {
47   - padding-left: 32px;
48   - }
49   -
50   - .author a,
51   - .committer a {
52   - font-size: 14px;
53   - line-height: 22px;
54   - text-shadow: 0 1px 1px #fff;
55   - color: #777;
56   - &:hover {
57   - color: #999;
58   - }
59   - }
60   -
61   - .avatar {
62   - margin-right: 10px;
63   - }
64   - }
65   -}
66   -
67 1 /**
68 2 *
69 3 * COMMIT SHOw
70 4 *
71 5 */
  6 +.commit-committer-link,
  7 +.commit-author-link {
  8 + font-size: 13px;
  9 + color: #555;
  10 + &:hover {
  11 + color: #999;
  12 + }
  13 +}
  14 +
72 15 .diff_file {
73 16 border: 1px solid #CCC;
74 17 margin-bottom: 1em;
... ... @@ -255,13 +198,6 @@
255 198 min-width: 65px;
256 199 font-family: $monospace;
257 200 }
258   -
259   - .commit-author-name {
260   - color: #777;
261   - &:hover {
262   - color: #999;
263   - }
264   - }
265 201 }
266 202  
267 203 .diff_file_header a,
... ...
app/assets/stylesheets/sections/issues.scss
1   -.issue_form_box {
2   - @extend .main_box;
3   - .issue_title {
4   - @extend .top_box_content;
5   - .clearfix {
6   - margin-bottom: 0px;
7   - input {
8   - @extend .span8;
9   - }
10   - }
11   - }
12   - .issue_middle_block {
13   - @extend .middle_box_content;
14   - height: 30px;
15   - .issue_assignee {
16   - @extend .span6;
17   - float: left;
18   - }
19   - .issue_milestone {
20   - @extend .span4;
21   - float: left;
22   - }
23   - }
24   - .issue_description {
25   - @extend .bottom_box_content;
26   - }
27   -}
28   -
29 1 .issues_table {
30 2 .issue {
31 3 padding: 7px 10px;
... ...
app/assets/stylesheets/sections/merge_requests.scss
1   -/**
2   - * MR form
3   - *
4   - */
5   -
6   -.mr_branch_box {
7   - @extend .ui-box;
8   - margin-bottom: 20px;
9   -
10   - .body {
11   - background: #f1f1f1;
12   - }
13   -
14   -}
15 1  
16 2 /**
17 3 * MR -> show: Automerge widget
... ... @@ -121,19 +107,3 @@ li.merge_request {
121 107 .mr_direction_tip {
122 108 margin-top:40px
123 109 }
124   -
125   -.merge_requests_form_box {
126   - @extend .main_box;
127   - .merge_requests_middle_box {
128   - @extend .middle_box_content;
129   - height: 30px;
130   - .merge_requests_assignee {
131   - @extend .span6;
132   - float: left;
133   - }
134   - .merge_requests_milestone {
135   - @extend .span4;
136   - float: left;
137   - }
138   - }
139   -}
... ...
app/assets/stylesheets/sections/projects.scss
... ... @@ -9,15 +9,17 @@
9 9 .groups_box,
10 10 .projects_box {
11 11 > h5 {
12   - color: $style_color;
  12 + color: #456;
13 13 font-size: 16px;
14 14 text-shadow: 0 1px 1px #fff;
15   - padding: 2px 10px;
16   - line-height: 32px;
  15 + padding: 2px 15px;
  16 + line-height: 36px;
17 17 font-size: 14px;
  18 + font-weight: normal;
18 19 }
19 20 .nav-projects-tabs li { padding: 0; }
20 21 .well-list {
  22 + li { padding: 15px; }
21 23 .arrow {
22 24 float: right;
23 25 padding: 10px;
... ... @@ -109,7 +111,7 @@ ul.nav.nav-projects-tabs {
109 111  
110 112 li {
111 113 a {
112   - padding: 4px 20px;
  114 + padding: 6px 25px;
113 115 margin-top: 2px;
114 116 border-color: #DDD;
115 117 background-color: #EEE;
... ...
app/views/commit/show.html.haml
1 1 = render "commits/commit_box"
2 2  
3   -%p.right
  3 +%p.right.cgray
4 4 This commit has
5 5 %span.cgreen #{@commit.stats.additions} additions
6 6 and
... ...
app/views/commits/_commit_box.html.haml
1   -.commit-box{class: @commit.parents_count > 1 ? "merge-commit" : ""}
2   - .commit-head
  1 +.ui-box.ui-box-show
  2 + .ui-box-head
3 3 .right
4 4 - if @notes_count > 0
5 5 %span.btn.disabled.grouped
6 6 %i.icon-comment
7 7 = @notes_count
8 8 .left.btn-group
9   - %a.btn.small.grouped.dropdown-toggle{ data: {toggle: :dropdown} }
  9 + %a.btn.grouped.dropdown-toggle{ data: {toggle: :dropdown} }
10 10 %i.icon-download-alt
11 11 Download as
12 12 %span.caret
13 13 %ul.dropdown-menu
14 14 %li= link_to "Email Patches", project_commit_path(@project, @commit, format: :patch)
15 15 %li= link_to "Plain Diff", project_commit_path(@project, @commit, format: :diff)
16   - = link_to project_tree_path(@project, @commit), class: "browse-button primary grouped" do
17   - %strong Browse Code »
  16 + = link_to project_tree_path(@project, @commit), class: "btn primary grouped" do
  17 + %span Browse Code »
18 18 %h3.commit-title.page_title
19 19 = gfm escape_once(@commit.title)
20 20 - if @commit.description.present?
21 21 %pre.commit-description
22 22 = gfm escape_once(@commit.description)
23   - .commit-info
  23 + .ui-box-body
24 24 .row
25 25 .span5
26 26 .author
27   - %strong= @commit.author_link avatar: true, size: 40
  27 + = @commit.author_link avatar: true, size: 32
28 28 authored
29 29 %time{title: @commit.authored_date.stamp("Aug 21, 2011 9:23pm")}
30 30 #{time_ago_in_words(@commit.authored_date)} ago
31 31 - if @commit.different_committer?
32 32 .committer
33 33 →
34   - %strong= @commit.committer_link
  34 + = @commit.committer_link
35 35 committed
36 36 %time{title: @commit.committed_date.stamp("Aug 21, 2011 9:23pm")}
37 37 #{time_ago_in_words(@commit.committed_date)} ago
38   - .span6.right
39   - .sha-block
40   - %span.cgray commit
41   - %code.label_commit= @commit.id
42   - .sha-block
43   - %span.cgray= pluralize(@commit.parents.count, "parent")
44   - - @commit.parents.each do |parent|
45   - = link_to parent.id[0...10], project_commit_path(@project, parent)
  38 + .span6.pull-right
  39 + .pull-right
  40 + .sha-block
  41 + %span.cgray commit
  42 + %span.label_commit= @commit.id
  43 + .clearfix
  44 + .pull-right
  45 + .sha-block
  46 + %span.cgray= pluralize(@commit.parents.count, "parent")
  47 + - @commit.parents.each do |parent|
  48 + = link_to parent.id[0...10], project_commit_path(@project, parent)
46 49  
47 50  
... ...
app/views/commits/_commits.html.haml
1 1 - @commits.group_by { |c| c.committed_date.to_date }.each do |day, commits|
2 2 %div.ui-box
3   - %h5.small
  3 + %h6.title
4 4 %i.icon-calendar
5 5 = day.stamp("28 Aug, 2010")
6 6 %ul.well-list= render commits
... ...
app/views/dashboard/_groups.html.haml
1 1 .groups_box
2   - %h5
  2 + %h5.title
3 3 Groups
4 4 %small
5 5 (#{groups.count})
... ...
app/views/dashboard/_projects.html.haml
1 1 .projects_box
2   - %h5
  2 + %h5.title
3 3 Projects
4 4 %small
5 5 (#{projects.total_count})
... ...
app/views/issues/_form.html.haml
... ... @@ -6,26 +6,27 @@
6 6 - @issue.errors.full_messages.each do |msg|
7 7 %span= msg
8 8 %br
9   - .issue_form_box
10   - .issue_title
  9 + .ui-box.ui-box-show
  10 + .ui-box-head
11 11 .clearfix
12 12 = f.label :title do
13 13 %strong= "Subject *"
14 14 .input
15 15 = f.text_field :title, maxlength: 255, class: "xxlarge js-gfm-input", autofocus: true, required: true
16   - .issue_middle_block
17   - .issue_assignee
18   - = f.label :assignee_id do
19   - %i.icon-user
20   - Assign to
21   - .input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { include_blank: "Select a user" }, {class: 'chosen'})
22   - .issue_milestone
23   - = f.label :milestone_id do
24   - %i.icon-time
25   - Milestone
26   - .input= f.select(:milestone_id, @project.milestones.active.all.collect {|p| [ p.title, p.id ] }, { include_blank: "Select milestone" }, {class: 'chosen'})
  16 + .ui-box-body
  17 + .clearfix
  18 + .issue_assignee.pull-left
  19 + = f.label :assignee_id do
  20 + %i.icon-user
  21 + Assign to
  22 + .input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { include_blank: "Select a user" }, {class: 'chosen'})
  23 + .issue_milestone.pull-left
  24 + = f.label :milestone_id do
  25 + %i.icon-time
  26 + Milestone
  27 + .input= f.select(:milestone_id, @project.milestones.active.all.collect {|p| [ p.title, p.id ] }, { include_blank: "Select milestone" }, {class: 'chosen'})
27 28  
28   - .issue_description
  29 + .ui-box-bottom
29 30 .clearfix
30 31 = f.label :label_list do
31 32 %i.icon-tag
... ...
app/views/issues/show.html.haml
... ... @@ -24,14 +24,14 @@
24 24 ← To issues list
25 25  
26 26  
27   -.main_box
28   - .top_box_content
  27 +.ui-box.ui-box-show
  28 + .ui-box-head
29 29 %h4.box-title
30 30 - if @issue.closed
31 31 .error.status_info Closed
32 32 = gfm escape_once(@issue.title)
33 33  
34   - .middle_box_content
  34 + .ui-box-body
35 35 %cite.cgray
36 36 Created by #{link_to_member(@project, @issue.author)}
37 37 - if @issue.assignee
... ... @@ -44,13 +44,13 @@
44 44  
45 45 .right
46 46 - @issue.labels.each do |label|
47   - %span.label.label-issue
  47 + %span
48 48 %i.icon-tag
49 49 = label.name
50 50  
51 51  
52 52 - if @issue.description.present?
53   - .bottom_box_content
  53 + .ui-box-bottom
54 54 = preserve do
55 55 = markdown @issue.description
56 56  
... ...
app/views/merge_requests/_form.html.haml
... ... @@ -5,45 +5,47 @@
5 5 - @merge_request.errors.full_messages.each do |msg|
6 6 %li= msg
7 7  
8   - %h4.cdark 1. Select Branches
9   - %br
  8 + %fieldset
  9 + %legend 1. Select Branches
10 10  
11   - .row
12   - .span5
13   - .mr_branch_box
14   - %h5 From (Head Branch)
15   - .body
16   - .padded= f.select(:source_branch, @repository.heads.map(&:name), { include_blank: "Select branch" }, {class: 'chosen span4'})
17   - .mr_source_commit
  11 + .row
  12 + .span5
  13 + .mr_branch_box
  14 + %h5 From (Head Branch)
  15 + .body
  16 + .padded= f.select(:source_branch, @repository.heads.map(&:name), { include_blank: "Select branch" }, {class: 'chosen span4'})
  17 + .mr_source_commit
18 18  
19   - .span2
20   - %center= image_tag "merge.png", class: 'mr_direction_tip'
21   - .span5
22   - .mr_branch_box
23   - %h5 To (Base Branch)
24   - .body
25   - .padded= f.select(:target_branch, @repository.heads.map(&:name), { include_blank: "Select branch" }, {class: 'chosen span4'})
26   - .mr_target_commit
  19 + .span2
  20 + %center= image_tag "merge.png", class: 'mr_direction_tip'
  21 + .span5
  22 + .mr_branch_box
  23 + %h5 To (Base Branch)
  24 + .body
  25 + .padded= f.select(:target_branch, @repository.heads.map(&:name), { include_blank: "Select branch" }, {class: 'chosen span4'})
  26 + .mr_target_commit
27 27  
28   - %h4.cdark 2. Fill info
  28 + %fieldset
  29 + %legend 2. Fill info
29 30  
30   - .clearfix
31   - .merge_requests_form_box
32   - .top_box_content
33   - = f.label :title do
34   - %strong= "Title *"
35   - .input= f.text_field :title, class: "input-xxlarge pad js-gfm-input", maxlength: 255, rows: 5, required: true
36   - .merge_requests_middle_box
37   - .merge_requests_assignee
38   - = f.label :assignee_id do
39   - %i.icon-user
40   - Assign to
41   - .input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { include_blank: "Select user" }, {class: 'chosen span3'})
42   - .merge_requests_milestone
43   - = f.label :milestone_id do
44   - %i.icon-time
45   - Milestone
46   - .input= f.select(:milestone_id, @project.milestones.active.all.collect {|p| [ p.title, p.id ] }, { include_blank: "Select milestone" }, {class: 'chosen'})
  31 + .ui-box.ui-box-show
  32 + .ui-box-head
  33 + .clearfix
  34 + = f.label :title do
  35 + %strong= "Title *"
  36 + .input= f.text_field :title, class: "input-xxlarge pad js-gfm-input", maxlength: 255, rows: 5, required: true
  37 + .ui-box-body
  38 + .clearfix
  39 + .left
  40 + = f.label :assignee_id do
  41 + %i.icon-user
  42 + Assign to
  43 + .input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { include_blank: "Select user" }, {class: 'chosen span3'})
  44 + .left
  45 + = f.label :milestone_id do
  46 + %i.icon-time
  47 + Milestone
  48 + .input= f.select(:milestone_id, @project.milestones.active.all.collect {|p| [ p.title, p.id ] }, { include_blank: "Select milestone" }, {class: 'chosen'})
47 49  
48 50 .control-group
49 51  
... ...
app/views/merge_requests/show/_commits.html.haml
1 1 - if @commits.present?
2 2 .ui-box
3   - %h5
  3 + %h6.title
4 4 %i.icon-list
5 5 Commits (#{@commits.count})
6 6 .merge-request-commits
... ...
app/views/merge_requests/show/_mr_box.html.haml
1   -.main_box
2   - .top_box_content
  1 +.ui-box.ui-box-show
  2 + .ui-box-head
3 3 %h4.box-title
4 4 - if @merge_request.merged
5 5 .error.status_info
... ... @@ -9,7 +9,7 @@
9 9 .error.status_info Closed
10 10 = gfm escape_once(@merge_request.title)
11 11  
12   - .middle_box_content
  12 + .ui-box-body
13 13 %div
14 14 %cite.cgray
15 15 Created at #{@merge_request.created_at.stamp("Aug 21, 2011")} by #{link_to_member(@project, @merge_request.author)}
... ... @@ -22,7 +22,7 @@
22 22  
23 23  
24 24 - if @merge_request.closed
25   - .bottom_box_content
  25 + .ui-box-bottom
26 26 - if @merge_request.merged?
27 27 %span
28 28 Merged by #{link_to_member(@project, @merge_request.merge_event.author)}
... ...
app/views/milestones/show.html.haml
... ... @@ -27,8 +27,8 @@
27 27 %span All issues for this milestone are closed. You may close milestone now.
28 28 = link_to 'Close Milestone', project_milestone_path(@project, @milestone, milestone: {closed: true }), method: :put, class: "btn small danger"
29 29  
30   -.main_box
31   - .top_box_content
  30 +.ui-box.ui-box-show
  31 + .ui-box-head
32 32 %h4.box-title
33 33 - if @milestone.closed
34 34 .error.status_info Closed
... ... @@ -37,7 +37,7 @@
37 37  
38 38 = gfm escape_once(@milestone.title)
39 39  
40   - .middle_box_content
  40 + .ui-box-body
41 41 %h5
42 42 Progress:
43 43 %small
... ...
app/views/repositories/tags.html.haml
... ... @@ -30,4 +30,10 @@
30 30 Download
31 31  
32 32 - else
33   - %h3 No tags
  33 + %h3.nothing_here_message
  34 + Repository has no tags yet.
  35 + %br
  36 + %small
  37 + Use git tag command to add a new one:
  38 + %br
  39 + %span.monospace git tag -a v1.4 -m 'version 1.4'
... ...
app/views/wikis/_form.html.haml
... ... @@ -6,12 +6,12 @@
6 6 - @wiki.errors.full_messages.each do |msg|
7 7 %li= msg
8 8  
9   - .main_box
10   - .top_box_content
  9 + .ui-box.ui-box-show
  10 + .ui-box-head
11 11 = f.label :title
12 12 .input= f.text_field :title, class: 'span8'
13 13 = f.hidden_field :slug
14   - .middle_box_content
  14 + .ui-box-body
15 15 .input
16 16 %span.cgray
17 17 Wiki content is parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}.
... ... @@ -19,7 +19,7 @@
19 19 %code [Link Title](page-slug)
20 20 \.
21 21  
22   - .bottom_box_content
  22 + .ui-box-bottom
23 23 = f.label :content
24 24 .input= f.text_area :content, class: 'span8 js-gfm-input'
25 25 .actions
... ...
spec/models/project_hooks_spec.rb
... ... @@ -2,6 +2,7 @@ require 'spec_helper'
2 2  
3 3 describe Project, "Hooks" do
4 4 let(:project) { create(:project) }
  5 +
5 6 before do
6 7 @key = create(:key, user: project.owner)
7 8 @user = @key.user
... ...
spec/models/project_spec.rb
... ... @@ -76,31 +76,15 @@ describe Project do
76 76  
77 77 describe "Respond to" do
78 78 it { should respond_to(:url_to_repo) }
79   - it { should respond_to(:path_to_repo) }
80   - it { should respond_to(:valid_repo?) }
81 79 it { should respond_to(:repo_exists?) }
82   -
83   - # Repository Role
84 80 it { should respond_to(:satellite) }
85 81 it { should respond_to(:update_repository) }
86 82 it { should respond_to(:destroy_repository) }
87   -
88   - # Authority Role
89   - it { should respond_to(:reset_access) }
90   - it { should respond_to(:allow_read_for?) }
91   - it { should respond_to(:guest_access_for?) }
92   - it { should respond_to(:report_access_for?) }
93   - it { should respond_to(:dev_access_for?) }
94   - it { should respond_to(:master_access_for?) }
95   -
96   - # Project Push Role
97 83 it { should respond_to(:observe_push) }
98 84 it { should respond_to(:update_merge_requests) }
99 85 it { should respond_to(:execute_hooks) }
100 86 it { should respond_to(:post_receive_data) }
101 87 it { should respond_to(:trigger_post_receive) }
102   -
103   - # Namespaced Project Role
104 88 it { should respond_to(:transfer) }
105 89 it { should respond_to(:name_with_namespace) }
106 90 it { should respond_to(:namespace_owner) }
... ...
spec/models/repository_spec.rb
  1 +require "spec_helper"
  2 +
1 3 describe Repository do
2 4 let(:project) { create(:project) }
3 5 let(:repository) { project.repository }
... ...
spec/models/team_spec.rb
  1 +require "spec_helper"
  2 +
1 3 describe Team do
  4 + let(:team) { create(:project).team }
  5 +
2 6 describe "Respond to" do
  7 + subject { team }
  8 +
3 9 it { should respond_to(:developers) }
4 10 it { should respond_to(:masters) }
5 11 it { should respond_to(:reporters) }
... ...