capybara_active_admin 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b1bf2ae0f9197923f7ba0d945b79083ef7565e03b7c8ff6d7c13d5c484022ec1
4
- data.tar.gz: 3ce7185784c70378209464e8460d7efdefa3176253cf224aeb0fefddd61f79c0
3
+ metadata.gz: 9aa80eda0b75b26f75d6b7a1a0df8355c8ef0bdb622687ecbd020bdc0cec6688
4
+ data.tar.gz: a9d73931be3341bca9fc81399009ae7f7c1045d72976ab24603d5818a408ed65
5
5
  SHA512:
6
- metadata.gz: 124073cea23b21a8ca5ed203c175ffae1064f53ef58141f7a7953fc4369466c39217487206775f5dc6f78abfa8d037c0db4791130331131c230a896805416ca9
7
- data.tar.gz: d56630e1e0ab2f96e5c2773b46e3728cc66400c1a3845a7f9ea18f1550085e4d1244e42e97eae191a90a0b935c6824c0a6198dbf909e508341a08674b42f24dc
6
+ metadata.gz: 7a5c5af2f5bf9bdfb9ceb7f8dfdbf416ecd02b8a51df91e8a310dcfb9ff4ec7f40556059edf4070a352999c7c67129c2c97eaf6ff6ef5a44110e85523f4af553
7
+ data.tar.gz: 653677e018c186b840985382f29a1735595d3a0a4a193b4c7472edae0065decac190663a794a917d323b9d24701a0d9f9035927ffa43ff26e8f7da8babd07ead
data/CHANGELOG.md ADDED
@@ -0,0 +1,27 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [Unreleased]
8
+
9
+ ## [0.2.0] - 2020-04-14
10
+ ### Breaking change
11
+ - rename #have_table_col to #have_table_cell
12
+ - change options of #have_table_cell
13
+ - change options of #have_table_row
14
+
15
+ ### Change
16
+ - refactor modules hierarchy: split DSL into selectors, finders, matchers and actions
17
+
18
+ ### Added
19
+ - form DSL
20
+ - changelog
21
+ - follow semver
22
+
23
+ ## [0.1.0] - 2020-04-14
24
+ ### Added
25
+ - travic CI
26
+ - rubocop
27
+ - capybara DSL to check page title, action items, table columns/rows
data/README.md CHANGED
@@ -45,15 +45,20 @@ RSpec.describe 'Users', js: true do
45
45
  expect(page).to have_action_item('New User')
46
46
  expect(page).to_not have_action_item('Edit User')
47
47
 
48
- with_table_for('users') do
48
+ within_table_for('users') do
49
49
  expect(page).to have_table_row(count: 2)
50
- expect(page).to have_table_col('John Doe')
51
- expect(page).to have_table_col('John Doe', row_id: john.id)
52
- expect(page).to have_table_col('John Doe', row_id: john.id, col_name: 'Full Name')
53
-
54
- expect(page).to_not have_table_col('John Doe', row_id: john.id, col_name: 'Id')
55
- expect(page).to_not have_table_col('John Doe', row_id: jane.id)
56
- expect(page).to_not have_table_col('John Doe', row_id: jane.id, col_name: 'Full Name')
50
+ expect(page).to have_table_cell('John Doe')
51
+
52
+ within_table_row(id: john.id) do
53
+ expect(page).to have_table_cell('John Doe', row_id: john.id)
54
+ expect(page).to have_table_cell('John Doe', row_id: john.id, col_name: 'Full Name')
55
+ expect(page).to_not have_table_cell('John Doe', row_id: john.id, col_name: 'Id')
56
+ end
57
+
58
+ within_table_row(id: jane.id) do
59
+ expect(page).to_not have_table_cell('John Doe')
60
+ expect(page).to_not have_table_cell('John Doe', col_name: 'Full Name')
61
+ end
57
62
  end
58
63
  end
59
64
 
@@ -63,8 +68,11 @@ RSpec.describe 'Users', js: true do
63
68
  click_action_item('New User')
64
69
  expect(page).to have_current_path(new_admin_user_path)
65
70
 
66
- fill_in 'Full name', with: 'Johny Cage'
67
- click_button 'Create User'
71
+ within_form_for(User) do
72
+ fill_in 'Full name', with: 'Johny Cage'
73
+ click_submit 'Create User'
74
+ end
75
+
68
76
  expect(page).to have_flash_message('User was successfully created.', type: :notice)
69
77
  user = User.last!
70
78
  expect(page).to have_current_path admin_user_path(user.id)
@@ -95,3 +103,8 @@ The gem is available as open source under the terms of the [MIT License](https:/
95
103
  ## Code of Conduct
96
104
 
97
105
  Everyone interacting in the Capybara::ActiveAdmin project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/activeadmin-plugins/capybara_active_admin/blob/master/CODE_OF_CONDUCT.md).
106
+
107
+ ## Notes
108
+
109
+ Project uses [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) convention.
110
+ Project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
 
17
17
  spec.metadata['homepage_uri'] = spec.homepage
18
18
  spec.metadata['source_code_uri'] = spec.homepage
19
- spec.metadata['changelog_uri'] = spec.homepage
19
+ spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/master/CHANGELOG.md"
20
20
 
21
21
  # Specify which files should be added to the gem when it is released.
22
22
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -1,6 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'capybara/active_admin/version'
4
+ require 'capybara/active_admin/selectors'
5
+ require 'capybara/active_admin/finders'
6
+ require 'capybara/active_admin/matchers'
7
+ require 'capybara/active_admin/actions'
4
8
  require 'capybara/active_admin/test_helpers'
5
9
 
6
10
  module Capybara
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'capybara/active_admin/actions/layout'
4
+ require 'capybara/active_admin/actions/table'
5
+ require 'capybara/active_admin/actions/attributes_table'
6
+ require 'capybara/active_admin/actions/form'
7
+
8
+ module Capybara
9
+ module ActiveAdmin
10
+ module Actions
11
+ # Actions are interactions with page that change something.
12
+ # Click, scroll, fill, clear, switch - all these are interactions.
13
+
14
+ include Actions::Layout
15
+ include Actions::Table
16
+ include Actions::AttributesTable
17
+ include Actions::Form
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Actions
6
+ module AttributesTable
7
+ # todo
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Actions
6
+ module Form
7
+ def click_submit(value, options = {})
8
+ selector = form_submit_selector(value)
9
+ find(selector, options).click
10
+ end
11
+
12
+ def fill_in_file(label, options = {})
13
+ path = options.delete(:with)
14
+ attach_file(label, path)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Actions
6
+ module Layout
7
+ def click_action_item(title, options = {})
8
+ within(action_items_container_selector) do
9
+ click_link(title, options)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Actions
6
+ module Table
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'capybara/active_admin/finders/layout'
4
+ require 'capybara/active_admin/finders/table'
5
+ require 'capybara/active_admin/finders/attributes_table'
6
+ require 'capybara/active_admin/finders/form'
7
+
8
+ module Capybara
9
+ module ActiveAdmin
10
+ module Finders
11
+ # Finders are methods that find node element(s) or change current scope to node element.
12
+
13
+ include Finders::Layout
14
+ include Finders::Table
15
+ include Finders::AttributesTable
16
+ include Finders::Form
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Finders
6
+ module AttributesTable
7
+ # todo
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Finders
6
+ module Form
7
+ # @param name [Class<Object>, String] form record class or model name
8
+ def within_form_for(name)
9
+ name = name.model_name.singular if name.is_a?(Class)
10
+ selector = form_selector(name)
11
+ within(selector) { yield }
12
+ end
13
+
14
+ # @param association_name [String]
15
+ # @param index [String] index of fieldset, starts with 0.
16
+ # @yield within fieldset>ol
17
+ def within_form_has_many(association_name, index: 0)
18
+ selector = has_many_fields_selector(association_name)
19
+ fieldset = find_all(selector, minimum: index + 1)[index]
20
+
21
+ within(fieldset) { yield }
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Finders
6
+ module Layout
7
+ # todo
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Finders
6
+ module Table
7
+ def current_table_name
8
+ @__current_table_name
9
+ end
10
+
11
+ def within_table_for(name)
12
+ name = name.model_name.plural if name.is_a?(Class)
13
+ selector = table_selector(name)
14
+
15
+ within(selector) do
16
+ old = @__current_table_name
17
+ @__current_table_name = name
18
+ begin
19
+ yield
20
+ ensure
21
+ @__current_table_name = old
22
+ end
23
+ end
24
+ end
25
+
26
+ def within_table_row(id: nil, index: nil)
27
+ row = find_table_row(id: id, index: index)
28
+ within(row) { yield }
29
+ end
30
+
31
+ def find_table_row(id: nil, index: nil)
32
+ raise ArgumentError, "can't use both :id and :index" if id && index
33
+ raise ArgumentError, 'must provide :id or :index' if id.nil? && index.nil?
34
+
35
+ if id
36
+ model = @__current_table_name
37
+ selector = table_row_selector(model, id)
38
+ return find(selector)
39
+ end
40
+
41
+ find_all(table_row_selector(nil, nil), minimum: index + 1)[index]
42
+ end
43
+
44
+ def within_table_cell(name)
45
+ cell = find_table_cell(name)
46
+ within(cell) { yield }
47
+ end
48
+
49
+ def find_table_cell(column)
50
+ selector = table_cell_selector(column)
51
+ find(selector)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'capybara/active_admin/matchers/layout'
4
+ require 'capybara/active_admin/matchers/table'
5
+ require 'capybara/active_admin/matchers/attributes_table'
6
+ require 'capybara/active_admin/matchers/form'
7
+
8
+ module Capybara
9
+ module ActiveAdmin
10
+ module Matchers
11
+ # RSpec matchers should be putted here.
12
+
13
+ include Matchers::Layout
14
+ include Matchers::Table
15
+ include Matchers::AttributesTable
16
+ include Matchers::Form
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Matchers
6
+ module AttributesTable
7
+ # todo
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Matchers
6
+ module Form
7
+ def have_form_error(error, options = {})
8
+ field = options.delete(:field)
9
+ opts = options.merge(text: error)
10
+ return have_selector("li #{inline_error_selector}", opts) if field.nil?
11
+
12
+ label = find(label_selector, text: field)
13
+ li_id = label.ancestor('li')[:id]
14
+ have_selector("li##{li_id} #{inline_error_selector}", opts)
15
+ end
16
+
17
+ def have_no_form_errors(options = {})
18
+ field = options.delete(:field)
19
+ return have_none_of_selectors(:css, "li #{inline_error_selector}", options) if field.nil?
20
+
21
+ label = find(label_selector, text: field)
22
+ li_id = label.ancestor('li')[:id]
23
+ have_none_of_selectors(:css, "li##{li_id} #{inline_error_selector}", options)
24
+ end
25
+
26
+ def have_semantic_error(error, options = {})
27
+ opts = options.merge(text: error)
28
+ have_selector(semantic_error_selector, opts)
29
+ end
30
+
31
+ def have_semantic_errors(options = {})
32
+ have_selector(semantic_error_selector, options)
33
+ end
34
+
35
+ def have_no_input(label, options = {})
36
+ opts = options.merge(text: label)
37
+ have_none_of_selectors(:css, label_selector, opts)
38
+ end
39
+
40
+ def have_has_many_fields_for(association_name, options = {})
41
+ selector = has_many_fields_selector(association_name)
42
+ have_selector(selector, options)
43
+ end
44
+
45
+ def have_input(label, options = {})
46
+ selector = input_selector label, options.slice(:type, :text)
47
+ opts = options.except(:type, :text)
48
+ have_selector(selector, opts)
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Matchers
6
+ module Layout
7
+ def have_action_item(text, options = {})
8
+ opts = options.merge(text: text)
9
+ have_selector(action_item_selector, opts)
10
+ end
11
+
12
+ def have_page_title(text, options = {})
13
+ opts = options.merge(text: text)
14
+ have_selector(page_title_selector, opts)
15
+ end
16
+
17
+ def have_flash_message(text, options = {})
18
+ type = options.delete(:type)
19
+ opts = options.merge(text: text)
20
+ selector = flash_message_selector(type)
21
+ have_selector(selector, opts)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Matchers
6
+ module Table
7
+ # @param options [Hash]
8
+ # :text [String, nil] cell content
9
+ # :id [String, Number, nil] record ID
10
+ # for other options @see Capybara::RSpecMatchers#have_selector
11
+ # @example
12
+ # within_table_for('users') do
13
+ # expect(page).to have_table_row(id: user.id)
14
+ # end
15
+ #
16
+ def have_table_row(options = {})
17
+ row_id = options.delete(:id)
18
+ selector = table_row_selector(current_table_name, row_id)
19
+ have_selector(selector, options)
20
+ end
21
+
22
+ # @param options [Hash]
23
+ # :text [String, nil] cell content
24
+ # :column [String, nil] cell header name
25
+ # for other options @see Capybara::RSpecMatchers#have_selector
26
+ # @example
27
+ # within_table_for('users') do
28
+ # within_table_row(id: user.id) do
29
+ # expect(page).to have_table_cell(count: 5)
30
+ # expect(page).to have_table_cell(text: user.id.to_s)
31
+ # expect(page).to have_table_cell(text: 'John Doe', column: 'Full name')
32
+ # end
33
+ # end
34
+ #
35
+ def have_table_cell(options = {})
36
+ column = options.delete(:column)
37
+ selector = table_cell_selector(column)
38
+
39
+ have_selector(selector, options)
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'singleton'
4
+ require 'capybara/active_admin/selectors/layout'
5
+ require 'capybara/active_admin/selectors/table'
6
+ require 'capybara/active_admin/selectors/attributes_table'
7
+ require 'capybara/active_admin/selectors/form'
8
+
9
+ module Capybara
10
+ module ActiveAdmin
11
+ module Selectors
12
+ # Methods that return css/xpath selectors should be placed here.
13
+
14
+ include Selectors::Layout
15
+ include Selectors::Table
16
+ include Selectors::AttributesTable
17
+ include Selectors::Form
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Selectors
6
+ module AttributesTable
7
+ # todo
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Selectors
6
+ module Form
7
+ # @param name [String] form model name
8
+ def form_selector(name)
9
+ "form.formtastic.#{name}"
10
+ end
11
+
12
+ def label_selector
13
+ 'label.label'
14
+ end
15
+
16
+ def inline_error_selector
17
+ 'p.inline-errors'
18
+ end
19
+
20
+ def semantic_error_selector
21
+ 'ul.errors > li'
22
+ end
23
+
24
+ def has_many_fields_selector(association_name)
25
+ "div.has_many_container.#{association_name} > fieldset.inputs.has_many_fields"
26
+ end
27
+
28
+ def form_submit_selector(value = nil)
29
+ selector = %(input[type="submit"])
30
+ selector += %([value="#{value}"]) unless value.nil?
31
+ selector
32
+ end
33
+
34
+ def input_selector(label, options)
35
+ text = options.delete(:text)
36
+ type = options.delete(:type) || :text
37
+
38
+ label_opts = options.merge(text: label)
39
+ label = find(label_selector, label_opts)
40
+
41
+ input_id = label[:for]
42
+ tag_name = type.to_sym == :select ? 'select' : 'input'
43
+ selector = "#{tag_name}##{input_id}"
44
+ selector = %(#{selector}[value="#{text}"]) unless text.nil?
45
+ selector
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Selectors
6
+ module Layout
7
+ def action_items_container_selector
8
+ '#titlebar_right .action_items'
9
+ end
10
+
11
+ def action_item_selector
12
+ "#{action_items_container_selector} .action_item"
13
+ end
14
+
15
+ def page_title_selector
16
+ '#page_title'
17
+ end
18
+
19
+ def flash_message_selector(type = nil)
20
+ return ".flashes .flash.flash_#{type}" if type
21
+
22
+ '.flashes .flash'
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ActiveAdmin
5
+ module Selectors
6
+ module Table
7
+ def table_selector(model)
8
+ return 'table.index_table' if model.nil?
9
+
10
+ "table.index_table#index_table_#{model.to_s.pluralize}"
11
+ end
12
+
13
+ def table_row_selector(model, record_id)
14
+ return 'tbody > tr' if record_id.nil?
15
+
16
+ "tbody > tr##{model.to_s.singularize}_#{record_id}"
17
+ end
18
+
19
+ def table_header_selector
20
+ 'thead > tr > th.col'
21
+ end
22
+
23
+ def table_cell_selector(column)
24
+ column = column.to_s.gsub(' ', '_').downcase unless column.nil?
25
+ return 'td.col' if column.nil?
26
+
27
+ "td.col.col-#{column}"
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -3,89 +3,10 @@
3
3
  module Capybara
4
4
  module ActiveAdmin
5
5
  module TestHelpers
6
- def have_action_item(text, options = {})
7
- opts = options.merge(text: text)
8
- have_selector('#titlebar_right .action_items .action_item', opts)
9
- end
10
-
11
- def click_action_item(title, options = {})
12
- within '#titlebar_right .action_items' do
13
- click_link(title, options)
14
- end
15
- end
16
-
17
- def have_page_title(text, options = {})
18
- opts = options.merge(text: text)
19
- have_selector('#page_title', opts)
20
- end
21
-
22
- def have_flash_message(text, options = {})
23
- type = options.delete(:type)
24
- opts = options.merge(text: text)
25
- selector = if type
26
- ".flashes .flash.flash_#{type}"
27
- else
28
- '.flashes .flash'
29
- end
30
- have_selector(selector, opts)
31
- end
32
-
33
- def have_table_row(options = {})
34
- model = options.delete(:model)
35
- row_id = options.delete(:row_id)
36
- selector = table_row_selector(model, row_id: row_id)
37
- have_selector(selector, options)
38
- end
39
-
40
- def have_table_col(text, options = {})
41
- model = options.delete(:model)
42
- row_id = options.delete(:row_id)
43
- col_name = options.delete(:col_name)
44
- selector = table_col_selector(model, row_id: row_id, col_name: col_name)
45
- opts = options.merge(text: text)
46
- have_selector(selector, opts)
47
- end
48
-
49
- def table_selector(model)
50
- model ||= current_table_model
51
- return 'table.index_table' if model.nil?
52
-
53
- "table.index_table#index_table_#{model.to_s.pluralize}"
54
- end
55
-
56
- def table_row_selector(model, row_id: nil)
57
- model ||= current_table_model
58
- raise ArgumentError, 'model required when row_id is passed' if row_id && model.nil?
59
-
60
- selector = table_selector(model)
61
-
62
- row_selector = row_id ? "tr##{model.to_s.singularize}_#{row_id}" : 'tr'
63
- "#{selector} > tbody > #{row_selector}"
64
- end
65
-
66
- def table_col_selector(model, row_id: nil, col_name: nil)
67
- model ||= current_table_model
68
- col_name = col_name.to_s.gsub(' ', '_').downcase if col_name
69
- selector = table_row_selector(model, row_id: row_id)
70
- col_selector = col_name ? "td.col.col-#{col_name}" : 'td.col'
71
- "#{selector} > #{col_selector}"
72
- end
73
-
74
- def with_table_for(model)
75
- old = @_capybara_active_admin_table_model
76
- @_capybara_active_admin_table_model = model
77
- yield
78
- ensure
79
- @_capybara_active_admin_table_model = old
80
- end
81
-
82
- def current_table_model
83
- @_capybara_active_admin_table_model
84
- end
85
-
86
- # extend RSpec::Matchers::DSL
87
- # matcher :have_action_item do |expected|
88
- # end
6
+ include Selectors
7
+ include Finders
8
+ include Matchers
9
+ include Actions
89
10
  end
90
11
  end
91
12
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Capybara
4
4
  module ActiveAdmin
5
- VERSION = '0.1.0'
5
+ VERSION = '0.2.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara_active_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Talakevich
@@ -49,6 +49,7 @@ files:
49
49
  - ".rspec"
50
50
  - ".rubocop.yml"
51
51
  - ".travis.yml"
52
+ - CHANGELOG.md
52
53
  - CODE_OF_CONDUCT.md
53
54
  - Gemfile
54
55
  - LICENSE.txt
@@ -58,7 +59,27 @@ files:
58
59
  - bin/setup
59
60
  - capybara_active_admin.gemspec
60
61
  - lib/capybara/active_admin.rb
62
+ - lib/capybara/active_admin/actions.rb
63
+ - lib/capybara/active_admin/actions/attributes_table.rb
64
+ - lib/capybara/active_admin/actions/form.rb
65
+ - lib/capybara/active_admin/actions/layout.rb
66
+ - lib/capybara/active_admin/actions/table.rb
67
+ - lib/capybara/active_admin/finders.rb
68
+ - lib/capybara/active_admin/finders/attributes_table.rb
69
+ - lib/capybara/active_admin/finders/form.rb
70
+ - lib/capybara/active_admin/finders/layout.rb
71
+ - lib/capybara/active_admin/finders/table.rb
72
+ - lib/capybara/active_admin/matchers.rb
73
+ - lib/capybara/active_admin/matchers/attributes_table.rb
74
+ - lib/capybara/active_admin/matchers/form.rb
75
+ - lib/capybara/active_admin/matchers/layout.rb
76
+ - lib/capybara/active_admin/matchers/table.rb
61
77
  - lib/capybara/active_admin/rspec.rb
78
+ - lib/capybara/active_admin/selectors.rb
79
+ - lib/capybara/active_admin/selectors/attributes_table.rb
80
+ - lib/capybara/active_admin/selectors/form.rb
81
+ - lib/capybara/active_admin/selectors/layout.rb
82
+ - lib/capybara/active_admin/selectors/table.rb
62
83
  - lib/capybara/active_admin/test_helpers.rb
63
84
  - lib/capybara/active_admin/version.rb
64
85
  - lib/capybara_active_admin.rb
@@ -68,7 +89,7 @@ licenses:
68
89
  metadata:
69
90
  homepage_uri: https://github.com/active_admin_plugins/capybara_active_admin
70
91
  source_code_uri: https://github.com/active_admin_plugins/capybara_active_admin
71
- changelog_uri: https://github.com/active_admin_plugins/capybara_active_admin
92
+ changelog_uri: https://github.com/active_admin_plugins/capybara_active_admin/blob/master/CHANGELOG.md
72
93
  post_install_message:
73
94
  rdoc_options: []
74
95
  require_paths: