File: _form.html.haml_spec.rb

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (58 lines) | stat: -rw-r--r-- 1,969 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe 'user_settings/ssh_keys/_form.html.haml', feature_category: :system_access do
  include RenderedHtml
  include SshKeysHelper

  let_it_be(:key) { Key.new }

  let(:page) { rendered_html }

  before do
    assign(:key, key)
  end

  context 'when the form partial is used' do
    before do
      render
    end

    it 'renders the form with the correct action' do
      expect(page.find('form')['action']).to eq('/-/user_settings/ssh_keys')
    end

    it 'has the key field', :aggregate_failures do
      expect(rendered).to have_field('Key', type: 'textarea')
      expect(rendered).to have_text(
        format(s_('Profiles|Begins with %{ssh_key_algorithms}.'), ssh_key_algorithms: ssh_key_allowed_algorithms))
    end

    it 'has the title field', :aggregate_failures do
      expect(rendered).to have_field('Title', type: 'text', placeholder: 'Example: MacBook key')
      expect(rendered).to have_text('Key titles are publicly visible.')
    end

    it 'has the usage type field', :aggregate_failures do
      expect(page).to have_select _('Usage type'),
        selected: 'Authentication & Signing', options: ['Authentication & Signing', 'Authentication', 'Signing']
    end

    it 'has the expires at field', :aggregate_failures do
      expect(rendered).to have_field('Expiration date', type: 'text')
      expect(page.find_field('Expiration date')['min']).to eq(l(1.day.from_now, format: "%Y-%m-%d"))
      expect(rendered).to have_text(
        s_('Profiles|Optional but recommended. If set, key becomes invalid on the specified date.'))
    end

    it 'has the validation warning', :aggregate_failures do
      expect(rendered).to have_text("Are you sure? Publicly visible private SSH keys can compromise your system.")
      expect(rendered).to have_button('Yes, add it')
    end

    it 'has the submit button' do
      expect(rendered).to have_button('Add key')
    end
  end
end