project.rb 3,6 КБ
Newer Older
Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
1
class Spinach::Features::Project < Spinach::FeatureSteps
Nihad Abbasov's avatar
Nihad Abbasov включено в состав коммита
2
3
4
  include SharedAuthentication
  include SharedProject
  include SharedPaths
Douwe Maan's avatar
Douwe Maan включено в состав коммита
5
  include WaitForAjax
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
6

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
7
  step 'change project settings' do
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
8
    fill_in 'project_name_edit', with: 'NewName'
Felipe Artur's avatar
Felipe Artur включено в состав коммита
9
    select 'Disabled', from: 'project_project_feature_attributes_issues_access_level'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
10
11
  end

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
12
  step 'I save project' do
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
13
    click_button 'Save changes'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
14
15
  end

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
16
  step 'I should see project with new settings' do
Robert Speicher's avatar
Robert Speicher включено в состав коммита
17
    expect(find_field('project_name').value).to eq 'NewName'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
18
  end
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
19
20

  step 'change project path settings' do
Steven Thonus's avatar
Steven Thonus включено в состав коммита
21
22
    fill_in 'project_path', with: 'new-path'
    click_button 'Rename'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
23
24
25
  end

  step 'I should see project with new path settings' do
Robert Speicher's avatar
Robert Speicher включено в состав коммита
26
    expect(project.path).to eq 'new-path'
Steven Thonus's avatar
Steven Thonus включено в состав коммита
27
28
29
30
31
  end

  step 'I change the project avatar' do
    attach_file(
      :project_avatar,
Stan Hu's avatar
Stan Hu включено в состав коммита
32
      File.join(Rails.root, 'spec', 'fixtures', 'banana_sample.gif')
Steven Thonus's avatar
Steven Thonus включено в состав коммита
33
34
35
36
37
38
    )
    click_button 'Save changes'
    @project.reload
  end

  step 'I should see new project avatar' do
Robert Speicher's avatar
Robert Speicher включено в состав коммита
39
    expect(@project.avatar).to be_instance_of AvatarUploader
Steven Thonus's avatar
Steven Thonus включено в состав коммита
40
    url = @project.avatar.url
Gabriel Mazetto's avatar
Gabriel Mazetto включено в состав коммита
41
    expect(url).to eq "/uploads/project/avatar/#{@project.id}/banana_sample.gif"
Steven Thonus's avatar
Steven Thonus включено в состав коммита
42
43
44
  end

  step 'I should see the "Remove avatar" button' do
Robert Speicher's avatar
Robert Speicher включено в состав коммита
45
    expect(page).to have_link('Remove avatar')
Steven Thonus's avatar
Steven Thonus включено в состав коммита
46
47
48
49
50
  end

  step 'I have an project avatar' do
    attach_file(
      :project_avatar,
Stan Hu's avatar
Stan Hu включено в состав коммита
51
      File.join(Rails.root, 'spec', 'fixtures', 'banana_sample.gif')
Steven Thonus's avatar
Steven Thonus включено в состав коммита
52
53
54
55
56
57
58
59
60
61
62
    )
    click_button 'Save changes'
    @project.reload
  end

  step 'I remove my project avatar' do
    click_link 'Remove avatar'
    @project.reload
  end

  step 'I should see the default project avatar' do
Robert Speicher's avatar
Robert Speicher включено в состав коммита
63
    expect(@project.avatar?).to eq false
Steven Thonus's avatar
Steven Thonus включено в состав коммита
64
65
66
  end

  step 'I should not see the "Remove avatar" button' do
Robert Speicher's avatar
Robert Speicher включено в состав коммита
67
    expect(page).not_to have_link('Remove avatar')
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
68
  end
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
69

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
70
  step 'change project default branch' do
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
71
72
    select 'fix', from: 'project_default_branch'
    click_button 'Save changes'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
73
74
75
  end

  step 'I should see project default branch changed' do
Robert Speicher's avatar
Robert Speicher включено в состав коммита
76
    expect(find(:css, 'select#project_default_branch').value).to eq 'fix'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
77
  end
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
78
79
80
81
82
83

  step 'I select project "Forum" README tab' do
    click_link 'Readme'
  end

  step 'I should see project "Forum" README' do
Douwe Maan's avatar
Douwe Maan включено в состав коммита
84
    page.within('.readme-holder') do
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
85
86
      expect(page).to have_content 'Sample repo for testing gitlab features'
    end
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
87
88
89
  end

  step 'I should see project "Shop" README' do
Douwe Maan's avatar
Douwe Maan включено в состав коммита
90
    wait_for_ajax
Douwe Maan's avatar
Douwe Maan включено в состав коммита
91
    page.within('.readme-holder') do
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
92
93
      expect(page).to have_content 'testme'
    end
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
94
  end
Stan Hu's avatar
Stan Hu включено в состав коммита
95
96
97
98
99
100
101
102

  step 'I add project tags' do
    fill_in 'Tags', with: 'tag1, tag2'
  end

  step 'I should see project tags' do
    expect(find_field('Tags').value).to eq 'tag1, tag2'
  end
103
104

  step 'I should not see "New Issue" button' do
Robert Speicher's avatar
Robert Speicher включено в состав коммита
105
    expect(page).not_to have_link 'New Issue'
106
107
108
  end

  step 'I should not see "New Merge Request" button' do
Robert Speicher's avatar
Robert Speicher включено в состав коммита
109
    expect(page).not_to have_link 'New Merge Request'
110
  end
Stan Hu's avatar
Stan Hu включено в состав коммита
111
112

  step 'I should not see "Snippets" button' do
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
113
114
115
    page.within '.content' do
      expect(page).not_to have_link 'Snippets'
    end
Stan Hu's avatar
Stan Hu включено в состав коммита
116
  end
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
117
118
119
120
121
122
123

  step 'project "Shop" belongs to group' do
    group = create(:group)
    @project.namespace = group
    @project.save!
  end

Patricio Cano's avatar
Patricio Cano включено в состав коммита
124
  step 'I click notifications drop down button' do
Felipe Artur's avatar
Felipe Artur включено в состав коммита
125
    first('.notifications-btn').click
Patricio Cano's avatar
Patricio Cano включено в состав коммита
126
127
128
  end

  step 'I choose Mention setting' do
Patricio Cano's avatar
Patricio Cano включено в состав коммита
129
    click_link 'On mention'
Patricio Cano's avatar
Patricio Cano включено в состав коммита
130
131
132
  end

  step 'I should see Notification saved message' do
Phil Hughes's avatar
Phil Hughes включено в состав коммита
133
134
    page.within '#notifications-button' do
      expect(page).to have_content 'On mention'
Patricio Cano's avatar
Patricio Cano включено в состав коммита
135
136
    end
  end
Phil Hughes's avatar
Phil Hughes включено в состав коммита
137
138
139
140
141
142
143
144
145
146

  step 'I create bare repo' do
    click_link 'Create empty bare repository'
  end

  step 'I should see command line instructions' do
    page.within ".empty_wrapper" do
      expect(page).to have_content("Command line instructions")
    end
  end
Nihad Abbasov's avatar
Nihad Abbasov включено в состав коммита
147
end