diff --git a/features/admin/deploy_keys.feature b/features/admin/deploy_keys.feature
deleted file mode 100644
index 95ac77cddd232540d8f6c9988547f882d501838e..0000000000000000000000000000000000000000
--- a/features/admin/deploy_keys.feature
+++ /dev/null
@@ -1,23 +0,0 @@
-@admin
-Feature: Admin Deploy Keys
-  Background:
-    Given I sign in as an admin
-    And there are public deploy keys in system
-
-  Scenario: Deploy Keys list
-    When I visit admin deploy keys page
-    Then I should see all public deploy keys
-
-  Scenario: Deploy Keys new
-    When I visit admin deploy keys page
-    And I click 'New Deploy Key'
-    And I submit new deploy key
-    Then I should be on admin deploy keys page
-    And I should see newly created deploy key without write access
-
-  Scenario: Deploy Keys new with write access
-    When I visit admin deploy keys page
-    And I click 'New Deploy Key'
-    And I submit new deploy key with write access
-    Then I should be on admin deploy keys page
-    And I should see newly created deploy key with write access
diff --git a/features/steps/admin/deploy_keys.rb b/features/steps/admin/deploy_keys.rb
deleted file mode 100644
index 79312a5d1c54aff62b6a343d9a39a21535a42743..0000000000000000000000000000000000000000
--- a/features/steps/admin/deploy_keys.rb
+++ /dev/null
@@ -1,59 +0,0 @@
-class Spinach::Features::AdminDeployKeys < Spinach::FeatureSteps
-  include SharedAuthentication
-  include SharedPaths
-  include SharedAdmin
-
-  step 'there are public deploy keys in system' do
-    create(:deploy_key, public: true)
-    create(:another_deploy_key, public: true)
-  end
-
-  step 'I should see all public deploy keys' do
-    DeployKey.are_public.each do |p|
-      expect(page).to have_content p.title
-    end
-  end
-
-  step 'I visit admin deploy key page' do
-    visit admin_deploy_key_path(deploy_key)
-  end
-
-  step 'I visit admin deploy keys page' do
-    visit admin_deploy_keys_path
-  end
-
-  step 'I click \'New Deploy Key\'' do
-    click_link 'New Deploy Key'
-  end
-
-  step 'I submit new deploy key' do
-    fill_in "deploy_key_title", with: "laptop"
-    fill_in "deploy_key_key", with: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzrEJUIR6Y03TCE9rIJ+GqTBvgb8t1jI9h5UBzCLuK4VawOmkLornPqLDrGbm6tcwM/wBrrLvVOqi2HwmkKEIecVO0a64A4rIYScVsXIniHRS6w5twyn1MD3sIbN+socBDcaldECQa2u1dI3tnNVcs8wi77fiRe7RSxePsJceGoheRQgC8AZ510UdIlO+9rjIHUdVN7LLyz512auAfYsgx1OfablkQ/XJcdEwDNgi9imI6nAXhmoKUm1IPLT2yKajTIC64AjLOnE0YyCh6+7RFMpiMyu1qiOCpdjYwTgBRiciNRZCH8xIedyCoAmiUgkUT40XYHwLuwiPJICpkAzp7Q== user@laptop"
-    click_button "Create"
-  end
-
-  step 'I submit new deploy key with write access' do
-    fill_in "deploy_key_title", with: "server"
-    fill_in "deploy_key_key", with: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzrEJUIR6Y03TCE9rIJ+GqTBvgb8t1jI9h5UBzCLuK4VawOmkLornPqLDrGbm6tcwM/wBrrLvVOqi2HwmkKEIecVO0a64A4rIYScVsXIniHRS6w5twyn1MD3sIbN+socBDcaldECQa2u1dI3tnNVcs8wi77fiRe7RSxePsJceGoheRQgC8AZ510UdIlO+9rjIHUdVN7LLyz512auAfYsgx1OfablkQ/XJcdEwDNgi9imI6nAXhmoKUm1IPLT2yKajTIC64AjLOnE0YyCh6+7RFMpiMyu1qiOCpdjYwTgBRiciNRZCH8xIedyCoAmiUgkUT40XYHwLuwiPJICpkAzp7Q== user@laptop"
-    check "deploy_key_can_push"
-    click_button "Create"
-  end
-
-  step 'I should be on admin deploy keys page' do
-    expect(current_path).to eq admin_deploy_keys_path
-  end
-
-  step 'I should see newly created deploy key without write access' do
-    expect(page).to have_content(deploy_key.title)
-    expect(page).to have_content('No')
-  end
-
-  step 'I should see newly created deploy key with write access' do
-    expect(page).to have_content(deploy_key.title)
-    expect(page).to have_content('Yes')
-  end
-
-  def deploy_key
-    @deploy_key ||= DeployKey.are_public.first
-  end
-end
diff --git a/spec/features/admin/admin_deploy_keys_spec.rb b/spec/features/admin/admin_deploy_keys_spec.rb
index 8bf6848078520a46419315342f4b84ff2c215f55..7ce6cce0a5cef4a10c3c67968419641ac1dfd0c9 100644
--- a/spec/features/admin/admin_deploy_keys_spec.rb
+++ b/spec/features/admin/admin_deploy_keys_spec.rb
@@ -15,15 +15,36 @@ RSpec.describe 'admin deploy keys', type: :feature do
     expect(page).to have_content(another_deploy_key.title)
   end
 
-  it 'creates new deploy key' do
-    visit admin_deploy_keys_path
+  describe 'create new deploy key' do
+    before do
+      visit admin_deploy_keys_path
+      click_link 'New Deploy Key'
+    end
+
+    it 'creates new deploy key' do
+      fill_deploy_key
+      click_button 'Create'
+
+      expect_renders_new_key
+    end
+
+    it 'creates new deploy key with write access' do
+      fill_deploy_key
+      check "deploy_key_can_push"
+      click_button "Create"
+
+      expect_renders_new_key
+      expect(page).to have_content('Yes')
+    end
 
-    click_link 'New Deploy Key'
-    fill_in 'deploy_key_title', with: 'laptop'
-    fill_in 'deploy_key_key', with: 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzrEJUIR6Y03TCE9rIJ+GqTBvgb8t1jI9h5UBzCLuK4VawOmkLornPqLDrGbm6tcwM/wBrrLvVOqi2HwmkKEIecVO0a64A4rIYScVsXIniHRS6w5twyn1MD3sIbN+socBDcaldECQa2u1dI3tnNVcs8wi77fiRe7RSxePsJceGoheRQgC8AZ510UdIlO+9rjIHUdVN7LLyz512auAfYsgx1OfablkQ/XJcdEwDNgi9imI6nAXhmoKUm1IPLT2yKajTIC64AjLOnE0YyCh6+7RFMpiMyu1qiOCpdjYwTgBRiciNRZCH8xIedyCoAmiUgkUT40XYHwLuwiPJICpkAzp7Q== user@laptop'
-    click_button 'Create'
+    def expect_renders_new_key
+      expect(current_path).to eq admin_deploy_keys_path
+      expect(page).to have_content('laptop')
+    end
 
-    expect(current_path).to eq admin_deploy_keys_path
-    expect(page).to have_content('laptop')
+    def fill_deploy_key
+      fill_in 'deploy_key_title', with: 'laptop'
+      fill_in 'deploy_key_key', with: 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzrEJUIR6Y03TCE9rIJ+GqTBvgb8t1jI9h5UBzCLuK4VawOmkLornPqLDrGbm6tcwM/wBrrLvVOqi2HwmkKEIecVO0a64A4rIYScVsXIniHRS6w5twyn1MD3sIbN+socBDcaldECQa2u1dI3tnNVcs8wi77fiRe7RSxePsJceGoheRQgC8AZ510UdIlO+9rjIHUdVN7LLyz512auAfYsgx1OfablkQ/XJcdEwDNgi9imI6nAXhmoKUm1IPLT2yKajTIC64AjLOnE0YyCh6+7RFMpiMyu1qiOCpdjYwTgBRiciNRZCH8xIedyCoAmiUgkUT40XYHwLuwiPJICpkAzp7Q== user@laptop'
+    end
   end
 end