redis_web_manager 0.1.6
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 +7 -0
- data/.gitignore +24 -0
- data/.rspec +3 -0
- data/.rubocop.yml +17 -0
- data/.travis.yml +15 -0
- data/Gemfile +17 -0
- data/Gemfile.lock +162 -0
- data/MIT-LICENSE +20 -0
- data/README.md +29 -0
- data/Rakefile +28 -0
- data/app/assets/config/redis_web_manager_manifest.js +2 -0
- data/app/assets/javascripts/redis_web_manager/application.js +19 -0
- data/app/assets/javascripts/redis_web_manager/bootstrap.js +6 -0
- data/app/assets/javascripts/redis_web_manager/chartjs.js +7 -0
- data/app/assets/javascripts/redis_web_manager/dashboard.js +246 -0
- data/app/assets/javascripts/redis_web_manager/jquery.js +2 -0
- data/app/assets/javascripts/redis_web_manager/keys.js +14 -0
- data/app/assets/javascripts/redis_web_manager/popper.js +4 -0
- data/app/assets/stylesheets/redis_web_manager/application.css +15 -0
- data/app/assets/stylesheets/redis_web_manager/bootstrap.css +6 -0
- data/app/assets/stylesheets/redis_web_manager/dashboard.css +28 -0
- data/app/controllers/redis_web_manager/actions_controller.rb +11 -0
- data/app/controllers/redis_web_manager/application_controller.rb +31 -0
- data/app/controllers/redis_web_manager/clients_controller.rb +12 -0
- data/app/controllers/redis_web_manager/configuration_controller.rb +12 -0
- data/app/controllers/redis_web_manager/dashboard_controller.rb +14 -0
- data/app/controllers/redis_web_manager/information_controller.rb +18 -0
- data/app/helpers/redis_web_manager/application_helper.rb +13 -0
- data/app/helpers/redis_web_manager/clients_helper.rb +35 -0
- data/app/helpers/redis_web_manager/dashboard_helper.rb +20 -0
- data/app/views/layouts/redis_web_manager/application.html.erb +17 -0
- data/app/views/redis_web_manager/clients/index.html.erb +58 -0
- data/app/views/redis_web_manager/configuration/index.html.erb +24 -0
- data/app/views/redis_web_manager/dashboard/index.html.erb +49 -0
- data/app/views/redis_web_manager/information/index.html.erb +24 -0
- data/app/views/redis_web_manager/shared/_header.html.erb +49 -0
- data/app/views/redis_web_manager/shared/_status.html.erb +6 -0
- data/bin/rails +20 -0
- data/config/routes.rb +19 -0
- data/gemfiles/Gemfile-5-2 +5 -0
- data/gemfiles/Gemfile-6-0 +5 -0
- data/lib/redis_web_manager.rb +35 -0
- data/lib/redis_web_manager/action.rb +21 -0
- data/lib/redis_web_manager/base.rb +11 -0
- data/lib/redis_web_manager/connection.rb +31 -0
- data/lib/redis_web_manager/data.rb +55 -0
- data/lib/redis_web_manager/engine.rb +21 -0
- data/lib/redis_web_manager/info.rb +69 -0
- data/lib/redis_web_manager/version.rb +5 -0
- data/redis_web_manager.gemspec +42 -0
- data/spec/controllers/redis_web_manager/actions_controller_spec.rb +13 -0
- data/spec/controllers/redis_web_manager/application_controller_spec.rb +29 -0
- data/spec/controllers/redis_web_manager/clients_controller_spec.rb +14 -0
- data/spec/controllers/redis_web_manager/configuration_controller_spec.rb +14 -0
- data/spec/controllers/redis_web_manager/dashboard_controller_spec.rb +14 -0
- data/spec/controllers/redis_web_manager/information_controller_spec.rb +14 -0
- data/spec/dummy/Rakefile +8 -0
- data/spec/dummy/app/assets/config/manifest.js +4 -0
- data/spec/dummy/app/assets/javascripts/application.js +14 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +4 -0
- data/spec/dummy/app/helpers/application_helper.rb +4 -0
- data/spec/dummy/app/views/layouts/application.html.erb +15 -0
- data/spec/dummy/bin/bundle +5 -0
- data/spec/dummy/bin/rails +6 -0
- data/spec/dummy/bin/rake +6 -0
- data/spec/dummy/bin/setup +27 -0
- data/spec/dummy/bin/update +27 -0
- data/spec/dummy/config.ru +7 -0
- data/spec/dummy/config/application.rb +23 -0
- data/spec/dummy/config/boot.rb +7 -0
- data/spec/dummy/config/environment.rb +7 -0
- data/spec/dummy/config/environments/development.rb +49 -0
- data/spec/dummy/config/environments/production.rb +79 -0
- data/spec/dummy/config/environments/test.rb +38 -0
- data/spec/dummy/config/initializers/application_controller_renderer.rb +9 -0
- data/spec/dummy/config/initializers/assets.rb +14 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +8 -0
- data/spec/dummy/config/initializers/content_security_policy.rb +26 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +6 -0
- data/spec/dummy/config/initializers/inflections.rb +17 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +11 -0
- data/spec/dummy/config/locales/en.yml +33 -0
- data/spec/dummy/config/puma.rb +39 -0
- data/spec/dummy/config/routes.rb +5 -0
- data/spec/dummy/config/spring.rb +8 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
- data/spec/dummy/public/apple-touch-icon.png +0 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/helpers/application_helper_spec.rb +15 -0
- data/spec/helpers/clients_helper_spec.rb +19 -0
- data/spec/helpers/dashboard_helper_spec.rb +15 -0
- data/spec/rails_helper.rb +50 -0
- data/spec/redis_web_manager_action_spec.rb +33 -0
- data/spec/redis_web_manager_connection_spec.rb +33 -0
- data/spec/redis_web_manager_info_spec.rb +90 -0
- data/spec/redis_web_manager_spec.rb +57 -0
- data/spec/routing/actions_controller_spec.rb +21 -0
- data/spec/routing/clients_controller_spec.rb +15 -0
- data/spec/routing/configuration_controller_spec.rb +15 -0
- data/spec/routing/dashboard_controller_spec.rb +15 -0
- data/spec/spec_helper.rb +96 -0
- metadata +619 -0
data/bin/rails
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# This command will automatically be run when you run "rails" with Rails gems
|
|
5
|
+
# installed from the root of your application.
|
|
6
|
+
|
|
7
|
+
ENGINE_ROOT = File.expand_path('..', __dir__)
|
|
8
|
+
ENGINE_PATH = File.expand_path('../lib/redis_web_manager/engine', __dir__)
|
|
9
|
+
APP_PATH = File.expand_path('../spec/dummy/config/application', __dir__)
|
|
10
|
+
|
|
11
|
+
# Set up gems listed in the Gemfile.
|
|
12
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
|
|
13
|
+
require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
|
|
14
|
+
|
|
15
|
+
require 'rails'
|
|
16
|
+
# Pick the frameworks you want:
|
|
17
|
+
require 'action_controller/railtie'
|
|
18
|
+
require 'action_view/railtie'
|
|
19
|
+
require 'sprockets/railtie'
|
|
20
|
+
require 'rails/engine/commands'
|
data/config/routes.rb
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RedisWebManager::Engine.routes.draw do
|
|
4
|
+
# Configuration
|
|
5
|
+
get :configuration, to: 'configuration#index'
|
|
6
|
+
|
|
7
|
+
# Information
|
|
8
|
+
get :information, to: 'information#index'
|
|
9
|
+
|
|
10
|
+
# Clients
|
|
11
|
+
get :clients, to: 'clients#index'
|
|
12
|
+
|
|
13
|
+
# Actions
|
|
14
|
+
delete :flushdb, to: 'actions#flushdb'
|
|
15
|
+
delete :flushall, to: 'actions#flushall'
|
|
16
|
+
|
|
17
|
+
# Root
|
|
18
|
+
root 'dashboard#index'
|
|
19
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'redis_web_manager/engine'
|
|
4
|
+
require 'redis_web_manager/base'
|
|
5
|
+
require 'redis_web_manager/action'
|
|
6
|
+
require 'redis_web_manager/connection'
|
|
7
|
+
require 'redis_web_manager/info'
|
|
8
|
+
require 'redis_web_manager/data'
|
|
9
|
+
require 'redis'
|
|
10
|
+
|
|
11
|
+
module RedisWebManager
|
|
12
|
+
mattr_accessor :redis, default: ::Redis.new
|
|
13
|
+
mattr_accessor :authenticate, default: nil
|
|
14
|
+
mattr_accessor :lifespan, default: 15.days
|
|
15
|
+
|
|
16
|
+
class << self
|
|
17
|
+
def configure
|
|
18
|
+
yield self if block_given?
|
|
19
|
+
check_attrs
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
def check_attrs
|
|
25
|
+
unless redis.is_a?(::Redis)
|
|
26
|
+
raise ArgumentError, 'Invalid Redis instance, use like that Redis.new'
|
|
27
|
+
end
|
|
28
|
+
unless lifespan.is_a?(::ActiveSupport::Duration)
|
|
29
|
+
raise ArgumentError, 'Invalid lifespan, use like that 15.days, 15.minutes etc'
|
|
30
|
+
end
|
|
31
|
+
valid = lifespan.to_i.positive?
|
|
32
|
+
raise ArgumentError, 'Invalid lifespan, value must be greater than 0' unless valid
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RedisWebManager
|
|
4
|
+
class Action < Base
|
|
5
|
+
def flushall
|
|
6
|
+
redis.flushall
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def flushdb
|
|
10
|
+
redis.flushdb
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def del(key)
|
|
14
|
+
redis.del(key)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def rename(old_name, new_name)
|
|
18
|
+
redis.rename(old_name, new_name)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RedisWebManager
|
|
4
|
+
class Connection < Base
|
|
5
|
+
def host
|
|
6
|
+
@host ||= connection[:host]
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def port
|
|
10
|
+
@port ||= connection[:port]
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def db
|
|
14
|
+
@db ||= connection[:db]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def id
|
|
18
|
+
@id ||= connection[:id]
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def location
|
|
22
|
+
@location ||= connection[:location]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def connection
|
|
28
|
+
@connection ||= redis.connection
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RedisWebManager
|
|
4
|
+
class Data < Base
|
|
5
|
+
BASE = 'RedisWebManager'
|
|
6
|
+
|
|
7
|
+
def perform
|
|
8
|
+
now = Time.now.to_i
|
|
9
|
+
seconds = (now + lifespan.to_i) - now
|
|
10
|
+
redis.setex("#{BASE}_#{now}", seconds, serialize.to_json)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
def serialize
|
|
16
|
+
{
|
|
17
|
+
date: Time.now,
|
|
18
|
+
memory: memory,
|
|
19
|
+
client: client,
|
|
20
|
+
cpu: cpu
|
|
21
|
+
}
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def memory
|
|
25
|
+
{
|
|
26
|
+
used_memory: stats[:used_memory],
|
|
27
|
+
used_memory_rss: stats[:used_memory_rss],
|
|
28
|
+
used_memory_peak: stats[:used_memory_peak],
|
|
29
|
+
used_memory_overhead: stats[:used_memory_overhead],
|
|
30
|
+
used_memory_startup: stats[:used_memory_startup],
|
|
31
|
+
used_memory_dataset: stats[:used_memory_dataset]
|
|
32
|
+
}
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def client
|
|
36
|
+
{
|
|
37
|
+
connected_clients: stats[:connected_clients],
|
|
38
|
+
blocked_clients: stats[:blocked_clients]
|
|
39
|
+
}
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def cpu
|
|
43
|
+
{
|
|
44
|
+
used_cpu_sys: stats[:used_cpu_sys],
|
|
45
|
+
used_cpu_user: stats[:used_cpu_user],
|
|
46
|
+
used_cpu_sys_children: stats[:used_cpu_sys_children],
|
|
47
|
+
used_cpu_user_children: stats[:used_cpu_user_children]
|
|
48
|
+
}
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def stats
|
|
52
|
+
@stats ||= redis.info.symbolize_keys
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RedisWebManager
|
|
4
|
+
class Engine < ::Rails::Engine
|
|
5
|
+
isolate_namespace RedisWebManager
|
|
6
|
+
|
|
7
|
+
path = Engine.root.join('app', 'assets', 'config')
|
|
8
|
+
config.assets.precompile << "#{path}/redis_web_manager_manifest.js"
|
|
9
|
+
|
|
10
|
+
config.generators do |generate|
|
|
11
|
+
# Don't generate assets
|
|
12
|
+
generate.assets false
|
|
13
|
+
|
|
14
|
+
# Don't generate helper
|
|
15
|
+
generate.helper false
|
|
16
|
+
|
|
17
|
+
# Rspec
|
|
18
|
+
generate.test_framework :rspec
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RedisWebManager
|
|
4
|
+
class Info < Base
|
|
5
|
+
def status
|
|
6
|
+
@status ||= redis.ping == 'PONG'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def stats
|
|
10
|
+
@stats ||= redis.info
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def keys
|
|
14
|
+
@keys ||= redis.keys
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def search(query)
|
|
18
|
+
redis.scan_each(match: "*#{query.downcase}*").to_a
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def type(key)
|
|
22
|
+
redis.type(key)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def expire(key)
|
|
26
|
+
redis.ttl(key)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def memory_usage(key)
|
|
30
|
+
redis.memory(:usage, key)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def get(key)
|
|
34
|
+
redis.get(key)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def llen(key)
|
|
38
|
+
redis.llen(key)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def lrange(key, start, stop)
|
|
42
|
+
redis.lrange(key, start, stop)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def smembers(key)
|
|
46
|
+
redis.smembers(key)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def zrange(key, start, stop, options = {})
|
|
50
|
+
redis.zrange(key, start, stop, options)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def hgetall(key)
|
|
54
|
+
redis.hgetall(key)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def dbsize
|
|
58
|
+
@dbsize ||= redis.dbsize
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def configuration
|
|
62
|
+
@configuration ||= redis.config(:get, '*')
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def clients
|
|
66
|
+
@clients ||= redis.client(:list)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
$LOAD_PATH.push File.expand_path('lib', __dir__)
|
|
4
|
+
|
|
5
|
+
# Maintain your gem's version:
|
|
6
|
+
require 'redis_web_manager/version'
|
|
7
|
+
|
|
8
|
+
# Describe your gem and declare its dependencies:
|
|
9
|
+
Gem::Specification.new do |spec|
|
|
10
|
+
spec.name = 'redis_web_manager'
|
|
11
|
+
spec.version = RedisWebManager::VERSION
|
|
12
|
+
|
|
13
|
+
spec.authors = ['Boris BRESCIANI', 'Benjamin DARCET', 'Olivier DUMAS', 'Sylvain KRAISIN']
|
|
14
|
+
spec.email = %w[boris2bresciani@gmail.com
|
|
15
|
+
b.darcet@gmail.com
|
|
16
|
+
dumas.olivier@outlook.fr
|
|
17
|
+
sylvain.kraisin@gmail.com]
|
|
18
|
+
|
|
19
|
+
spec.summary = 'Manage your Redis instance (See keys, memory used, connected client, etc...)'
|
|
20
|
+
spec.description = 'Manage your Redis instance (See keys, memory used, connected client, configuration, information)'
|
|
21
|
+
spec.homepage = 'https://github.com/OpenGems/redis_web_manager'
|
|
22
|
+
spec.license = 'MIT'
|
|
23
|
+
|
|
24
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
|
25
|
+
spec.metadata['source_code_uri'] = spec.homepage
|
|
26
|
+
|
|
27
|
+
# Specify which files should be added to the gem when it is released.
|
|
28
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
29
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
30
|
+
`git ls-files -z`.split("\x0")
|
|
31
|
+
.reject { |f| f.match(%r{^(test|spec|features|images)/}) }
|
|
32
|
+
end
|
|
33
|
+
spec.bindir = 'exe'
|
|
34
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
35
|
+
spec.require_paths = ['lib']
|
|
36
|
+
spec.test_files = Dir['spec/**/*']
|
|
37
|
+
|
|
38
|
+
spec.add_development_dependency 'rspec-rails', '= 4.0.0.beta3'
|
|
39
|
+
|
|
40
|
+
spec.add_dependency 'rails', '>= 5.2', '< 7'
|
|
41
|
+
spec.add_dependency 'redis', '~> 4.1.0'
|
|
42
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails_helper'
|
|
4
|
+
|
|
5
|
+
RSpec.describe RedisWebManager::ActionsController, type: :controller do
|
|
6
|
+
routes { RedisWebManager::Engine.routes }
|
|
7
|
+
|
|
8
|
+
describe 'DELETE #flushdb' do
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
describe 'DELETE #flushall' do
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails_helper'
|
|
4
|
+
|
|
5
|
+
RSpec.describe RedisWebManager::ApplicationController, type: :controller do
|
|
6
|
+
describe 'Methods' do
|
|
7
|
+
it 'returns a raise value (authenticated?)' do
|
|
8
|
+
expect do
|
|
9
|
+
controller.send(:authenticated?)
|
|
10
|
+
end.to raise_error(LocalJumpError)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'returns a nil value (authenticate)' do
|
|
14
|
+
expect(controller.send(:authenticate)).to eql(nil)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'returns a Info class (info)' do
|
|
18
|
+
expect(controller.send(:info)).to be_a_kind_of(RedisWebManager::Info)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'returns a Connection class (connection)' do
|
|
22
|
+
expect(controller.send(:connection)).to be_a_kind_of(RedisWebManager::Connection)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'returns a Action class (action)' do
|
|
26
|
+
expect(controller.send(:action)).to be_a_kind_of(RedisWebManager::Action)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails_helper'
|
|
4
|
+
|
|
5
|
+
RSpec.describe RedisWebManager::ClientsController, type: :controller do
|
|
6
|
+
routes { RedisWebManager::Engine.routes }
|
|
7
|
+
|
|
8
|
+
describe 'GET #index' do
|
|
9
|
+
it 'returns a success response' do
|
|
10
|
+
get :index
|
|
11
|
+
expect(response).to be_successful
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails_helper'
|
|
4
|
+
|
|
5
|
+
RSpec.describe RedisWebManager::ConfigurationController, type: :controller do
|
|
6
|
+
routes { RedisWebManager::Engine.routes }
|
|
7
|
+
|
|
8
|
+
describe 'GET #index' do
|
|
9
|
+
it 'returns a success response' do
|
|
10
|
+
get :index
|
|
11
|
+
expect(response).to be_successful
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails_helper'
|
|
4
|
+
|
|
5
|
+
RSpec.describe RedisWebManager::DashboardController, type: :controller do
|
|
6
|
+
routes { RedisWebManager::Engine.routes }
|
|
7
|
+
|
|
8
|
+
describe 'GET #index' do
|
|
9
|
+
it 'returns a success response' do
|
|
10
|
+
get :index
|
|
11
|
+
expect(response).to be_successful
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|