active_admin_sidebar 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/active_admin_sidebar/version.rb +1 -1
- metadata +4 -21
- data/.github/workflows/ci.yml +0 -91
- data/.gitignore +0 -6
- data/Gemfile +0 -20
- data/Rakefile +0 -5
- data/active_admin_sidebar.gemspec +0 -22
- data/package.json +0 -30
- data/spec/sidebars_spec.rb +0 -188
- data/spec/spec_helper.rb +0 -50
- data/spec/support/admin.rb +0 -73
- data/spec/support/capybara.rb +0 -8
- data/spec/support/rails_template.rb +0 -55
- data/tasks/test.rake +0 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b52cbe9432e50cb28e3f8fc445b052c11e6b22dcadc4240ad8f0854e2cbd9130
|
|
4
|
+
data.tar.gz: 77d9509198ab37d17ee738f5a8eefd4315100c851024e4289477578fa78a9280
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f723c8696ef07ec5543593691e472b87b7325459eb2378d01f0aed447cf9c979a8d55380956194f53c2dad8cbb4f648f49bcfab5d25899b56f9eea51072a120e
|
|
7
|
+
data.tar.gz: 3e50493992f98a08864ff9db07f5b634bf4de3f9fc3e1eecdf84db634cc77e874ca702a07f40e7fb26387d36897e29750c0ca3d860f9e6ae4f3d8ec30f542710
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: active_admin_sidebar
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.0.
|
|
4
|
+
version: 3.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Igor
|
|
@@ -36,26 +36,14 @@ executables: []
|
|
|
36
36
|
extensions: []
|
|
37
37
|
extra_rdoc_files: []
|
|
38
38
|
files:
|
|
39
|
-
- ".github/workflows/ci.yml"
|
|
40
|
-
- ".gitignore"
|
|
41
|
-
- Gemfile
|
|
42
39
|
- LICENSE
|
|
43
40
|
- README.md
|
|
44
|
-
- Rakefile
|
|
45
|
-
- active_admin_sidebar.gemspec
|
|
46
41
|
- app/assets/javascripts/active_admin_sidebar.js
|
|
47
42
|
- app/assets/stylesheets/active_admin_sidebar.scss
|
|
48
43
|
- lib/active_admin_sidebar.rb
|
|
49
44
|
- lib/active_admin_sidebar/activeadmin_views_pages_base.rb
|
|
50
45
|
- lib/active_admin_sidebar/positions.rb
|
|
51
46
|
- lib/active_admin_sidebar/version.rb
|
|
52
|
-
- package.json
|
|
53
|
-
- spec/sidebars_spec.rb
|
|
54
|
-
- spec/spec_helper.rb
|
|
55
|
-
- spec/support/admin.rb
|
|
56
|
-
- spec/support/capybara.rb
|
|
57
|
-
- spec/support/rails_template.rb
|
|
58
|
-
- tasks/test.rake
|
|
59
47
|
homepage: https://github.com/activeadmin-plugins/active_admin_sidebar
|
|
60
48
|
licenses:
|
|
61
49
|
- MIT
|
|
@@ -67,19 +55,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
67
55
|
requirements:
|
|
68
56
|
- - ">="
|
|
69
57
|
- !ruby/object:Gem::Version
|
|
70
|
-
version: 3.
|
|
58
|
+
version: '3.3'
|
|
71
59
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
60
|
requirements:
|
|
73
61
|
- - ">="
|
|
74
62
|
- !ruby/object:Gem::Version
|
|
75
63
|
version: '0'
|
|
76
64
|
requirements: []
|
|
77
|
-
rubygems_version: 3.
|
|
65
|
+
rubygems_version: 3.6.9
|
|
78
66
|
specification_version: 4
|
|
79
67
|
summary: active_admin_sidebar gem
|
|
80
|
-
test_files:
|
|
81
|
-
- spec/sidebars_spec.rb
|
|
82
|
-
- spec/spec_helper.rb
|
|
83
|
-
- spec/support/admin.rb
|
|
84
|
-
- spec/support/capybara.rb
|
|
85
|
-
- spec/support/rails_template.rb
|
|
68
|
+
test_files: []
|
data/.github/workflows/ci.yml
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
on:
|
|
3
|
-
pull_request:
|
|
4
|
-
push:
|
|
5
|
-
branches: [master]
|
|
6
|
-
|
|
7
|
-
permissions:
|
|
8
|
-
contents: read
|
|
9
|
-
pages: write
|
|
10
|
-
id-token: write
|
|
11
|
-
|
|
12
|
-
jobs:
|
|
13
|
-
test:
|
|
14
|
-
name: Ruby ${{ matrix.ruby }} / Rails ${{ matrix.rails }} / AA ${{ matrix.activeadmin }}
|
|
15
|
-
runs-on: ubuntu-latest
|
|
16
|
-
strategy:
|
|
17
|
-
fail-fast: false
|
|
18
|
-
matrix:
|
|
19
|
-
ruby: ['3.2', '3.3', '3.4']
|
|
20
|
-
rails: ['7.1.0', '7.2.0', '8.0.0']
|
|
21
|
-
activeadmin: ['3.2.0', '3.3.0', '3.4.0', '3.5.0']
|
|
22
|
-
exclude:
|
|
23
|
-
- rails: '8.0.0'
|
|
24
|
-
activeadmin: '3.2.0'
|
|
25
|
-
env:
|
|
26
|
-
RAILS: ${{ matrix.rails }}
|
|
27
|
-
AA: ${{ matrix.activeadmin }}
|
|
28
|
-
steps:
|
|
29
|
-
- uses: actions/checkout@v4
|
|
30
|
-
- uses: ruby/setup-ruby@v1
|
|
31
|
-
with:
|
|
32
|
-
ruby-version: ${{ matrix.ruby }}
|
|
33
|
-
bundler-cache: true
|
|
34
|
-
- name: Run tests
|
|
35
|
-
run: bundle exec rspec spec
|
|
36
|
-
|
|
37
|
-
- name: Generate badge.json
|
|
38
|
-
if: matrix.ruby == '3.4' && matrix.rails == '8.0.0' && matrix.activeadmin == '3.5.0'
|
|
39
|
-
run: |
|
|
40
|
-
LAST_RUN="coverage/.last_run.json"
|
|
41
|
-
if [ ! -f "$LAST_RUN" ]; then
|
|
42
|
-
mkdir -p badge
|
|
43
|
-
echo '{"schemaVersion":1,"label":"coverage","message":"unknown","color":"lightgrey"}' > badge/badge.json
|
|
44
|
-
exit 0
|
|
45
|
-
fi
|
|
46
|
-
PERCENT=$(ruby -rjson -e "puts JSON.parse(File.read('$LAST_RUN')).dig('result','line').round(1)")
|
|
47
|
-
PERCENT_NUM=$(ruby -rjson -e "puts JSON.parse(File.read('$LAST_RUN')).dig('result','line')")
|
|
48
|
-
if ruby -e "exit(($PERCENT_NUM >= 90) ? 0 : 1)"; then COLOR="brightgreen"
|
|
49
|
-
elif ruby -e "exit(($PERCENT_NUM >= 75) ? 0 : 1)"; then COLOR="green"
|
|
50
|
-
elif ruby -e "exit(($PERCENT_NUM >= 60) ? 0 : 1)"; then COLOR="yellow"
|
|
51
|
-
else COLOR="red"; fi
|
|
52
|
-
mkdir -p badge
|
|
53
|
-
echo "{\"schemaVersion\":1,\"label\":\"coverage\",\"message\":\"${PERCENT}%\",\"color\":\"${COLOR}\"}" > badge/badge.json
|
|
54
|
-
|
|
55
|
-
- name: Upload badge artifact
|
|
56
|
-
if: matrix.ruby == '3.4' && matrix.rails == '8.0.0' && matrix.activeadmin == '3.5.0'
|
|
57
|
-
uses: actions/upload-artifact@v4
|
|
58
|
-
with:
|
|
59
|
-
name: coverage-badge
|
|
60
|
-
path: badge
|
|
61
|
-
|
|
62
|
-
deploy-coverage:
|
|
63
|
-
needs: test
|
|
64
|
-
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
|
|
65
|
-
runs-on: ubuntu-latest
|
|
66
|
-
environment:
|
|
67
|
-
name: github-pages
|
|
68
|
-
url: ${{ steps.deployment.outputs.page_url }}
|
|
69
|
-
|
|
70
|
-
steps:
|
|
71
|
-
- uses: actions/checkout@v4
|
|
72
|
-
with:
|
|
73
|
-
ref: gh-pages
|
|
74
|
-
|
|
75
|
-
- name: Download coverage badge
|
|
76
|
-
uses: actions/download-artifact@v4
|
|
77
|
-
with:
|
|
78
|
-
name: coverage-badge
|
|
79
|
-
path: .
|
|
80
|
-
|
|
81
|
-
- name: Setup Pages
|
|
82
|
-
uses: actions/configure-pages@v5
|
|
83
|
-
|
|
84
|
-
- name: Upload Pages artifact
|
|
85
|
-
uses: actions/upload-pages-artifact@v3
|
|
86
|
-
with:
|
|
87
|
-
path: .
|
|
88
|
-
|
|
89
|
-
- name: Deploy to GitHub Pages
|
|
90
|
-
id: deployment
|
|
91
|
-
uses: actions/deploy-pages@v4
|
data/.gitignore
DELETED
data/Gemfile
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
gemspec
|
|
3
|
-
|
|
4
|
-
default_rails_version = '7.1.0'
|
|
5
|
-
default_activeadmin_version = '3.2.0'
|
|
6
|
-
|
|
7
|
-
gem 'rails', "~> #{ENV['RAILS'] || default_rails_version}"
|
|
8
|
-
gem 'activeadmin', "~> #{ENV['AA'] || default_activeadmin_version}"
|
|
9
|
-
gem 'sprockets-rails'
|
|
10
|
-
gem 'sass-rails'
|
|
11
|
-
|
|
12
|
-
group :test do
|
|
13
|
-
gem 'simplecov', require: false
|
|
14
|
-
gem 'rspec-rails'
|
|
15
|
-
gem 'sqlite3', '~> 2.0'
|
|
16
|
-
gem 'database_cleaner'
|
|
17
|
-
gem 'capybara'
|
|
18
|
-
gem 'cuprite'
|
|
19
|
-
gem 'webrick', require: false
|
|
20
|
-
end
|
data/Rakefile
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
$:.push File.expand_path("../lib", __FILE__)
|
|
2
|
-
require "active_admin_sidebar/version"
|
|
3
|
-
|
|
4
|
-
Gem::Specification.new do |s|
|
|
5
|
-
s.name = "active_admin_sidebar"
|
|
6
|
-
s.version = ActiveAdminSidebar::VERSION
|
|
7
|
-
s.authors = ["Igor"]
|
|
8
|
-
s.email = ["fedoronchuk@gmail.com"]
|
|
9
|
-
s.homepage = "https://github.com/activeadmin-plugins/active_admin_sidebar"
|
|
10
|
-
s.summary = %q{active_admin_sidebar gem}
|
|
11
|
-
s.description = %q{extension for activeadmin gem to manage sidebar}
|
|
12
|
-
s.license = "MIT"
|
|
13
|
-
|
|
14
|
-
s.required_ruby_version = '>= 3.1.0'
|
|
15
|
-
|
|
16
|
-
s.files = `git ls-files`.split("\n")
|
|
17
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
18
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
19
|
-
s.require_paths = ["lib"]
|
|
20
|
-
|
|
21
|
-
s.add_dependency "activeadmin", ">= 3.0", "< 4.0"
|
|
22
|
-
end
|
data/package.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@activeadmin-plugins/active_admin_sidebar",
|
|
3
|
-
"version": "3.0.0",
|
|
4
|
-
"description": "Extension for ActiveAdmin gem to manage sidebar",
|
|
5
|
-
"main": "src/active_admin_sidebar.js",
|
|
6
|
-
"style": "src/active_admin_sidebar.scss",
|
|
7
|
-
"repository": "git@github.com:activeadmin-plugins/active_admin_sidebar.git",
|
|
8
|
-
"author": "Igor Fedoronchuk <fedoronchuk@gmail.com>",
|
|
9
|
-
"license": "MIT",
|
|
10
|
-
"private": false,
|
|
11
|
-
"repository": {
|
|
12
|
-
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/activeadmin-plugins/active_admin_sidebar.git"
|
|
14
|
-
},
|
|
15
|
-
"bugs": {
|
|
16
|
-
"url": "https://github.com/activeadmin-plugins/active_admin_sidebar/issues"
|
|
17
|
-
},
|
|
18
|
-
"homepage": "https://github.com/activeadmin-plugins/active_admin_sidebar#readme",
|
|
19
|
-
"keywords": [
|
|
20
|
-
"active",
|
|
21
|
-
"admin",
|
|
22
|
-
"sidebar"
|
|
23
|
-
],
|
|
24
|
-
"files": [
|
|
25
|
-
"src/**/*"
|
|
26
|
-
],
|
|
27
|
-
"scripts": {
|
|
28
|
-
"prepublishOnly": "rm -rf src && cp -R app/assets/javascripts/ src && cp -R app/assets/stylesheets/ src"
|
|
29
|
-
}
|
|
30
|
-
}
|
data/spec/sidebars_spec.rb
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe 'authors index', type: :feature, js: true do
|
|
4
|
-
|
|
5
|
-
before do
|
|
6
|
-
Author.create!(name: 'John', last_name: 'Doe')
|
|
7
|
-
Author.create!(name: 'Jane', last_name: 'Roe')
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
context 'left-sidebar with collapsible: true (starts expanded)' do
|
|
11
|
-
before do
|
|
12
|
-
add_author_resource
|
|
13
|
-
add_post_resource
|
|
14
|
-
visit '/admin/authors'
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it 'has left-sidebar with toggle button' do
|
|
18
|
-
expect(page).to have_css('#filters_sidebar_section')
|
|
19
|
-
expect(page).to have_css('.sidebar_toggle_btn')
|
|
20
|
-
expect(page).to have_css('#active_admin_content.with_sidebar.left_sidebar.collapsible_sidebar')
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
it 'sidebar starts expanded' do
|
|
24
|
-
expect(page).to have_css('#sidebar .sidebar_section', visible: :visible)
|
|
25
|
-
expect(page).not_to have_css('#active_admin_content.collapsed_sidebar')
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
context 'when click on toggle to collapse' do
|
|
29
|
-
before do
|
|
30
|
-
page.find('.sidebar_toggle_btn').click
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it "sidebar is hidden, and save it's state after going to another page" do
|
|
34
|
-
expect(page).to have_css('#active_admin_content.collapsed_sidebar')
|
|
35
|
-
|
|
36
|
-
# Posts page is configured as: "before_action :skip_sidebar!"
|
|
37
|
-
visit '/admin/posts'
|
|
38
|
-
# sidebar does not exist at all
|
|
39
|
-
expect(page).to have_css('#page_title', text: 'Posts')
|
|
40
|
-
expect(page).not_to have_css('#sidebar', visible: :all)
|
|
41
|
-
|
|
42
|
-
visit '/admin/authors'
|
|
43
|
-
# sidebar is collapsed
|
|
44
|
-
expect(page).to have_css('#page_title', text: 'Authors')
|
|
45
|
-
expect(page).to have_css('#active_admin_content.collapsed_sidebar')
|
|
46
|
-
|
|
47
|
-
page.find('.sidebar_toggle_btn').click
|
|
48
|
-
|
|
49
|
-
# sidebar is visible
|
|
50
|
-
expect(page).to have_css('#sidebar .sidebar_section', visible: :visible)
|
|
51
|
-
expect(page).not_to have_css('#active_admin_content.collapsed_sidebar')
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
context 'left-sidebar with collapsible: true, start_collapsed: true' do
|
|
58
|
-
before do
|
|
59
|
-
add_author_resource_with_start_collapsed
|
|
60
|
-
add_post_resource
|
|
61
|
-
visit '/admin/authors'
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
it 'has collapsible sidebar that starts collapsed' do
|
|
65
|
-
expect(page).to have_css('#active_admin_content.collapsible_sidebar.collapsed_sidebar')
|
|
66
|
-
expect(page).to have_css('.sidebar_toggle_btn')
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
it 'can be expanded by clicking toggle button' do
|
|
70
|
-
page.find('.sidebar_toggle_btn').click
|
|
71
|
-
|
|
72
|
-
expect(page).to have_css('#sidebar .sidebar_section', visible: :visible)
|
|
73
|
-
expect(page).not_to have_css('#active_admin_content.collapsed_sidebar')
|
|
74
|
-
|
|
75
|
-
# session remembers expanded state
|
|
76
|
-
visit '/admin/authors'
|
|
77
|
-
expect(page).to have_css('#sidebar .sidebar_section', visible: :visible)
|
|
78
|
-
expect(page).not_to have_css('#active_admin_content.collapsed_sidebar')
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
context 'deprecated collapsed option raises error' do
|
|
83
|
-
it 'raises ArgumentError for left_sidebar!' do
|
|
84
|
-
obj = Object.new
|
|
85
|
-
obj.extend(ActiveAdminSidebar::Positions)
|
|
86
|
-
expect { obj.left_sidebar!(collapsed: true) }.to raise_error(ArgumentError, /removed in v3/)
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
it 'raises ArgumentError for right_sidebar!' do
|
|
90
|
-
obj = Object.new
|
|
91
|
-
obj.extend(ActiveAdminSidebar::Positions)
|
|
92
|
-
expect { obj.right_sidebar!(collapsed: true) }.to raise_error(ArgumentError, /removed in v3/)
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
context 'right-sidebar with collapsible: true (starts expanded)' do
|
|
97
|
-
before do
|
|
98
|
-
add_author_resource_right_sidebar
|
|
99
|
-
add_post_resource
|
|
100
|
-
visit '/admin/authors'
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
it 'has right-sidebar with toggle button' do
|
|
104
|
-
expect(page).to have_css('#filters_sidebar_section')
|
|
105
|
-
expect(page).to have_css('.sidebar_toggle_btn')
|
|
106
|
-
expect(page).to have_css('#active_admin_content.with_sidebar.collapsible_sidebar')
|
|
107
|
-
expect(page).not_to have_css('#active_admin_content.left_sidebar')
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
it 'sidebar starts expanded' do
|
|
111
|
-
expect(page).to have_css('#sidebar .sidebar_section', visible: :visible)
|
|
112
|
-
expect(page).not_to have_css('#active_admin_content.collapsed_sidebar')
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
context 'when click on toggle to collapse' do
|
|
116
|
-
before do
|
|
117
|
-
page.find('.sidebar_toggle_btn').click
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
it 'sidebar is hidden and toggle button is on the right side' do
|
|
121
|
-
expect(page).to have_css('#active_admin_content.collapsed_sidebar')
|
|
122
|
-
|
|
123
|
-
btn_left = page.evaluate_script("document.querySelector('.sidebar_toggle_btn').getBoundingClientRect().left")
|
|
124
|
-
page_width = page.evaluate_script('document.documentElement.clientWidth')
|
|
125
|
-
expect(btn_left).to be > (page_width / 2), "toggle button should be on the right side of the page"
|
|
126
|
-
|
|
127
|
-
page.find('.sidebar_toggle_btn').click
|
|
128
|
-
|
|
129
|
-
expect(page).not_to have_css('#active_admin_content.collapsed_sidebar')
|
|
130
|
-
expect(page).to have_css('#sidebar .sidebar_section', visible: :visible)
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
context 'right-sidebar with collapsible: true, start_collapsed: true' do
|
|
136
|
-
before do
|
|
137
|
-
add_author_resource_right_sidebar_start_collapsed
|
|
138
|
-
add_post_resource
|
|
139
|
-
visit '/admin/authors'
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
it 'has collapsible right-sidebar that starts collapsed' do
|
|
143
|
-
expect(page).to have_css('#active_admin_content.collapsible_sidebar.collapsed_sidebar')
|
|
144
|
-
expect(page).to have_css('.sidebar_toggle_btn')
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
it 'can be expanded by clicking toggle button' do
|
|
148
|
-
page.find('.sidebar_toggle_btn').click
|
|
149
|
-
|
|
150
|
-
expect(page).to have_css('#sidebar .sidebar_section', visible: :visible)
|
|
151
|
-
expect(page).not_to have_css('#active_admin_content.collapsed_sidebar')
|
|
152
|
-
|
|
153
|
-
# session remembers expanded state
|
|
154
|
-
visit '/admin/authors'
|
|
155
|
-
expect(page).to have_css('#sidebar .sidebar_section', visible: :visible)
|
|
156
|
-
expect(page).not_to have_css('#active_admin_content.collapsed_sidebar')
|
|
157
|
-
end
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
context 'per-resource sidebar state isolation' do
|
|
161
|
-
before do
|
|
162
|
-
Post.create!(title: 'Test', body: 'Body', author: Author.first)
|
|
163
|
-
add_author_resource_with_start_collapsed
|
|
164
|
-
add_post_resource_with_sidebar
|
|
165
|
-
end
|
|
166
|
-
|
|
167
|
-
it 'changing sidebar state on one resource does not affect another' do
|
|
168
|
-
# Authors starts collapsed (collapsible: true, start_collapsed: true)
|
|
169
|
-
visit '/admin/authors'
|
|
170
|
-
expect(page).to have_css('#active_admin_content.collapsed_sidebar')
|
|
171
|
-
|
|
172
|
-
# Expand authors
|
|
173
|
-
page.find('.sidebar_toggle_btn').click
|
|
174
|
-
expect(page).to have_css('#sidebar .sidebar_section', visible: :visible)
|
|
175
|
-
|
|
176
|
-
# Posts should still be in its default state (expanded, not collapsed)
|
|
177
|
-
visit '/admin/posts'
|
|
178
|
-
expect(page).to have_css('#active_admin_content.collapsible_sidebar')
|
|
179
|
-
expect(page).not_to have_css('#active_admin_content.collapsed_sidebar')
|
|
180
|
-
|
|
181
|
-
# Authors should still be expanded (from earlier toggle)
|
|
182
|
-
visit '/admin/authors'
|
|
183
|
-
expect(page).to have_css('#sidebar .sidebar_section', visible: :visible)
|
|
184
|
-
expect(page).not_to have_css('#active_admin_content.collapsed_sidebar')
|
|
185
|
-
end
|
|
186
|
-
end
|
|
187
|
-
|
|
188
|
-
end
|
data/spec/spec_helper.rb
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
require 'simplecov'
|
|
2
|
-
SimpleCov.start do
|
|
3
|
-
add_filter '/spec/'
|
|
4
|
-
end
|
|
5
|
-
|
|
6
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
7
|
-
$LOAD_PATH << File.expand_path('../support', __FILE__)
|
|
8
|
-
|
|
9
|
-
ENV['BUNDLE_GEMFILE'] = File.expand_path('../../Gemfile', __FILE__)
|
|
10
|
-
require "bundler"
|
|
11
|
-
Bundler.setup
|
|
12
|
-
|
|
13
|
-
ENV['RAILS_ENV'] = 'test'
|
|
14
|
-
require 'rails'
|
|
15
|
-
ENV['RAILS'] = Rails.version
|
|
16
|
-
ENV['RAILS_ROOT'] = File.expand_path("../rails/rails-#{ENV['RAILS']}", __FILE__)
|
|
17
|
-
unless File.exist?(ENV['RAILS_ROOT'])
|
|
18
|
-
system 'rake setup'
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
require 'rails/all'
|
|
22
|
-
require 'active_admin'
|
|
23
|
-
ActiveAdmin.application.load_paths = [ENV['RAILS_ROOT'] + "/app/admin"]
|
|
24
|
-
require ENV['RAILS_ROOT'] + '/config/environment.rb'
|
|
25
|
-
ActiveAdmin.application.authentication_method = false
|
|
26
|
-
ActiveAdmin.application.current_user_method = false
|
|
27
|
-
|
|
28
|
-
require 'rspec/rails'
|
|
29
|
-
require 'capybara/rails'
|
|
30
|
-
require 'capybara/rspec'
|
|
31
|
-
|
|
32
|
-
require 'support/admin'
|
|
33
|
-
require 'support/capybara'
|
|
34
|
-
|
|
35
|
-
RSpec.configure do |config|
|
|
36
|
-
config.use_transactional_fixtures = false
|
|
37
|
-
|
|
38
|
-
config.before(:suite) do
|
|
39
|
-
ActiveRecord::Migration.maintain_test_schema!
|
|
40
|
-
DatabaseCleaner.strategy = :truncation
|
|
41
|
-
DatabaseCleaner.clean_with(:truncation)
|
|
42
|
-
end
|
|
43
|
-
config.before(:each) do
|
|
44
|
-
DatabaseCleaner.strategy = :truncation
|
|
45
|
-
DatabaseCleaner.start
|
|
46
|
-
end
|
|
47
|
-
config.after(:each) do
|
|
48
|
-
DatabaseCleaner.clean
|
|
49
|
-
end
|
|
50
|
-
end
|
data/spec/support/admin.rb
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
def add_author_resource(options = {}, &block)
|
|
2
|
-
|
|
3
|
-
ActiveAdmin.register Author do
|
|
4
|
-
config.filters = true
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
Rails.application.reload_routes!
|
|
8
|
-
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def add_author_resource_with_start_collapsed(options = {}, &block)
|
|
12
|
-
|
|
13
|
-
ActiveAdmin.register Author do
|
|
14
|
-
config.filters = true
|
|
15
|
-
before_action do
|
|
16
|
-
left_sidebar!(collapsible: true, start_collapsed: true)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
Rails.application.reload_routes!
|
|
21
|
-
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def add_author_resource_right_sidebar(options = {}, &block)
|
|
25
|
-
|
|
26
|
-
ActiveAdmin.register Author do
|
|
27
|
-
config.filters = true
|
|
28
|
-
before_action do
|
|
29
|
-
right_sidebar!(collapsible: true)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
Rails.application.reload_routes!
|
|
34
|
-
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def add_author_resource_right_sidebar_start_collapsed(options = {}, &block)
|
|
38
|
-
|
|
39
|
-
ActiveAdmin.register Author do
|
|
40
|
-
config.filters = true
|
|
41
|
-
before_action do
|
|
42
|
-
right_sidebar!(collapsible: true, start_collapsed: true)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
Rails.application.reload_routes!
|
|
47
|
-
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def add_post_resource(options = {}, &block)
|
|
51
|
-
|
|
52
|
-
ActiveAdmin.register Post do
|
|
53
|
-
config.filters = true
|
|
54
|
-
before_action :skip_sidebar!
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
Rails.application.reload_routes!
|
|
58
|
-
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def add_post_resource_with_sidebar(options = {}, &block)
|
|
62
|
-
|
|
63
|
-
ActiveAdmin.register Post do
|
|
64
|
-
config.filters = true
|
|
65
|
-
skip_before_action :skip_sidebar!, raise: false
|
|
66
|
-
before_action do
|
|
67
|
-
left_sidebar!(collapsible: true)
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
Rails.application.reload_routes!
|
|
72
|
-
|
|
73
|
-
end
|
data/spec/support/capybara.rb
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# Ensure Sprockets manifest exists (required by Rails 8+)
|
|
2
|
-
FileUtils.mkdir_p("app/assets/config")
|
|
3
|
-
File.write("app/assets/config/manifest.js",
|
|
4
|
-
"//= link_directory ../javascripts .js\n//= link_directory ../stylesheets .css\n")
|
|
5
|
-
|
|
6
|
-
generate :model, 'author name:string{10}:uniq last_name:string birthday:date --force'
|
|
7
|
-
generate :model, 'post title:string:uniq body:text author:references --force'
|
|
8
|
-
|
|
9
|
-
inject_into_file "app/models/author.rb", " validates_presence_of :name\n validates_uniqueness_of :last_name\n", after: "ApplicationRecord\n"
|
|
10
|
-
inject_into_file "app/models/post.rb", " validates_presence_of :author\n", after: ":author\n"
|
|
11
|
-
|
|
12
|
-
# Add ransackable_attributes for Ransack 4+
|
|
13
|
-
inject_into_file "app/models/author.rb",
|
|
14
|
-
" def self.ransackable_attributes(auth_object = nil)\n" \
|
|
15
|
-
" [\"name\", \"last_name\", \"birthday\", \"created_at\", \"updated_at\"]\n" \
|
|
16
|
-
" end\n",
|
|
17
|
-
after: "ApplicationRecord\n"
|
|
18
|
-
|
|
19
|
-
inject_into_file "app/models/post.rb",
|
|
20
|
-
" def self.ransackable_attributes(auth_object = nil)\n" \
|
|
21
|
-
" [\"title\", \"body\", \"author_id\"]\n" \
|
|
22
|
-
" end\n" \
|
|
23
|
-
" def self.ransackable_associations(auth_object = nil)\n" \
|
|
24
|
-
" [\"author\"]\n" \
|
|
25
|
-
" end\n",
|
|
26
|
-
after: "ApplicationRecord\n"
|
|
27
|
-
|
|
28
|
-
# Add our local Active Admin to the load path (Rails 7.1+)
|
|
29
|
-
gsub_file "config/environment.rb",
|
|
30
|
-
'require_relative "application"',
|
|
31
|
-
"require_relative \"application\"\n$LOAD_PATH.unshift('#{File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'lib'))}')\nrequire \"active_admin\"\n"
|
|
32
|
-
|
|
33
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
34
|
-
|
|
35
|
-
generate :'active_admin:install --skip-users'
|
|
36
|
-
generate :'formtastic:install'
|
|
37
|
-
|
|
38
|
-
# Initialize plugin
|
|
39
|
-
inject_into_file "config/initializers/active_admin.rb",
|
|
40
|
-
" config.before_action do\n left_sidebar!(collapsible: true) if respond_to?(:left_sidebar!)\n end\n\n",
|
|
41
|
-
after: "ActiveAdmin.setup do |config|\n"
|
|
42
|
-
|
|
43
|
-
inject_into_file "app/assets/stylesheets/active_admin.scss",
|
|
44
|
-
"@import \"active_admin_sidebar\";\n",
|
|
45
|
-
after: "@import \"active_admin/base\";\n"
|
|
46
|
-
|
|
47
|
-
inject_into_file "app/assets/javascripts/active_admin.js",
|
|
48
|
-
"//= require active_admin_sidebar\n",
|
|
49
|
-
after: "//= require active_admin/base\n"
|
|
50
|
-
|
|
51
|
-
run "rm -rf test"
|
|
52
|
-
route "root :to => 'admin/dashboard#index'"
|
|
53
|
-
rake "db:migrate"
|
|
54
|
-
|
|
55
|
-
run "rm -f Gemfile Gemfile.lock"
|
data/tasks/test.rake
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
desc "Creates a test rails app for the specs to run against"
|
|
2
|
-
task :setup do
|
|
3
|
-
require 'rails/version'
|
|
4
|
-
|
|
5
|
-
rails_new_opts = %w(
|
|
6
|
-
--skip-turbolinks
|
|
7
|
-
--skip-spring
|
|
8
|
-
--skip-bootsnap
|
|
9
|
-
-m
|
|
10
|
-
spec/support/rails_template.rb
|
|
11
|
-
)
|
|
12
|
-
system "bundle exec rails new spec/rails/rails-#{Rails::VERSION::STRING} #{rails_new_opts.join(' ')}"
|
|
13
|
-
end
|