diff options
Diffstat (limited to 'spec/features')
-rw-r--r-- | spec/features/projects/group_links_spec.rb | 32 | ||||
-rw-r--r-- | spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb | 45 |
2 files changed, 77 insertions, 0 deletions
diff --git a/spec/features/projects/group_links_spec.rb b/spec/features/projects/group_links_spec.rb new file mode 100644 index 00000000000..1a71a03fbd9 --- /dev/null +++ b/spec/features/projects/group_links_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper' + +feature 'Project group links', feature: true, js: true do + include Select2Helper + + let(:master) { create(:user) } + let(:project) { create(:project) } + let!(:group) { create(:group) } + + background do + project.team << [master, :master] + login_as(master) + end + + context 'setting an expiration date for a group link' do + before do + visit namespace_project_group_links_path(project.namespace, project) + + select2 group.id, from: '#link_group_id' + fill_in 'expires_at', with: (Time.current + 4.5.days).strftime('%Y-%m-%d') + page.find('body').click + click_on 'Share' + end + + it 'shows the expiration time with a warning class' do + page.within('.enabled-groups') do + expect(page).to have_content('expires in 4 days') + expect(page).to have_selector('.text-warning') + end + end + end +end diff --git a/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb b/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb new file mode 100644 index 00000000000..430c384ac2e --- /dev/null +++ b/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb @@ -0,0 +1,45 @@ +require 'spec_helper' + +feature 'Projects > Members > Master adds member with expiration date', feature: true, js: true do + include Select2Helper + include ActiveSupport::Testing::TimeHelpers + + let(:master) { create(:user) } + let(:project) { create(:project) } + let!(:new_member) { create(:user) } + + background do + project.team << [master, :master] + login_as(master) + end + + scenario 'expiration date is displayed in the members list' do + travel_to Time.zone.parse('2016-08-06 08:00') do + visit namespace_project_project_members_path(project.namespace, project) + + page.within '.users-project-form' do + select2(new_member.id, from: '#user_ids', multiple: true) + fill_in 'expires_at', with: '2016-08-10' + click_on 'Add users to project' + end + + page.within '.project_member:first-child' do + expect(page).to have_content('Expires in 4 days') + end + end + end + + scenario 'change expiration date' do + travel_to Time.zone.parse('2016-08-06 08:00') do + project.team.add_users([new_member.id], :developer, expires_at: '2016-09-06') + visit namespace_project_project_members_path(project.namespace, project) + + page.within '.project_member:first-child' do + click_on 'Edit' + fill_in 'Access expiration date', with: '2016-08-09' + click_on 'Save' + expect(page).to have_content('Expires in 3 days') + end + end + end +end |