mno-enterprise-api 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +1 -0
- data/Rakefile +12 -0
- data/app/assets/javascripts/mno_enterprise/angular/loading-page.app.js.coffee +156 -0
- data/app/assets/javascripts/mno_enterprise/application.js +13 -0
- data/app/controllers/devise/password_expired_controller.rb +55 -0
- data/app/controllers/mno_enterprise/auth/confirmations_controller.rb +5 -0
- data/app/controllers/mno_enterprise/auth/omniauth_callbacks_controller.rb +30 -0
- data/app/controllers/mno_enterprise/auth/passwords_controller.rb +5 -0
- data/app/controllers/mno_enterprise/auth/registrations_controller.rb +5 -0
- data/app/controllers/mno_enterprise/auth/sessions_controller.rb +7 -0
- data/app/controllers/mno_enterprise/auth/unlocks_controller.rb +5 -0
- data/app/controllers/mno_enterprise/deletion_requests_controller.rb +5 -0
- data/app/controllers/mno_enterprise/impersonate_controller.rb +48 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/audit_events_controller.rb +16 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/base_resource_controller.rb +5 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/cloud_apps_controller.rb +46 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/invoices_controller.rb +47 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/organizations_controller.rb +27 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/tenant_invoices_controller.rb +14 -0
- data/app/controllers/mno_enterprise/jpi/v1/admin/users_controller.rb +63 -0
- data/app/controllers/mno_enterprise/jpi/v1/app_instances_controller.rb +24 -0
- data/app/controllers/mno_enterprise/jpi/v1/app_instances_sync_controller.rb +36 -0
- data/app/controllers/mno_enterprise/jpi/v1/base_resource_controller.rb +32 -0
- data/app/controllers/mno_enterprise/jpi/v1/current_users_controller.rb +5 -0
- data/app/controllers/mno_enterprise/jpi/v1/deletion_requests_controller.rb +5 -0
- data/app/controllers/mno_enterprise/jpi/v1/impac/dashboards_controller.rb +5 -0
- data/app/controllers/mno_enterprise/jpi/v1/impac/kpis_controller.rb +80 -0
- data/app/controllers/mno_enterprise/jpi/v1/impac/widgets_controller.rb +63 -0
- data/app/controllers/mno_enterprise/jpi/v1/industry_bundle_controller.rb +25 -0
- data/app/controllers/mno_enterprise/jpi/v1/marketplace_controller.rb +22 -0
- data/app/controllers/mno_enterprise/jpi/v1/organizations_controller.rb +5 -0
- data/app/controllers/mno_enterprise/jpi/v1/shopping_cart_controller.rb +93 -0
- data/app/controllers/mno_enterprise/jpi/v1/teams_controller.rb +88 -0
- data/app/controllers/mno_enterprise/org_invites_controller.rb +5 -0
- data/app/controllers/mno_enterprise/pages_controller.rb +5 -0
- data/app/controllers/mno_enterprise/provision_controller.rb +5 -0
- data/app/controllers/mno_enterprise/status_controller.rb +27 -0
- data/app/controllers/mno_enterprise/webhook/o_auth_controller.rb +5 -0
- data/app/mailers/mno_enterprise/system_notification_mailer.rb +5 -0
- data/app/models/mno_enterprise/health_check.rb +16 -0
- data/app/views/devise/password_expired/show.html.haml +32 -0
- data/app/views/mno_enterprise/auth/confirmations/default/_form.html.haml +49 -0
- data/app/views/mno_enterprise/auth/confirmations/default/_lounge.html.haml +34 -0
- data/app/views/mno_enterprise/auth/confirmations/default/_show.html.haml +10 -0
- data/app/views/mno_enterprise/auth/confirmations/lounge.html.haml +4 -0
- data/app/views/mno_enterprise/auth/confirmations/material/_form.html.haml +44 -0
- data/app/views/mno_enterprise/auth/confirmations/material/_lounge.html.haml +18 -0
- data/app/views/mno_enterprise/auth/confirmations/material/_show.html.haml +21 -0
- data/app/views/mno_enterprise/auth/confirmations/new.html.haml +31 -0
- data/app/views/mno_enterprise/auth/confirmations/show.html.haml +4 -0
- data/app/views/mno_enterprise/auth/mailer/confirmation_instructions.html.haml +4 -0
- data/app/views/mno_enterprise/auth/mailer/reset_password_instructions.html.haml +6 -0
- data/app/views/mno_enterprise/auth/mailer/unlock_instructions.html.haml +5 -0
- data/app/views/mno_enterprise/auth/passwords/edit.html.haml +53 -0
- data/app/views/mno_enterprise/auth/passwords/new.html.haml +34 -0
- data/app/views/mno_enterprise/auth/registrations/default/_form.html.haml +35 -0
- data/app/views/mno_enterprise/auth/registrations/default/_new.html.haml +11 -0
- data/app/views/mno_enterprise/auth/registrations/material/_form.html.haml +30 -0
- data/app/views/mno_enterprise/auth/registrations/material/_new.html.haml +10 -0
- data/app/views/mno_enterprise/auth/registrations/new.html.haml +4 -0
- data/app/views/mno_enterprise/auth/sessions/default/_form.html.haml +17 -0
- data/app/views/mno_enterprise/auth/sessions/default/_new.html.haml +11 -0
- data/app/views/mno_enterprise/auth/sessions/material/_form.html.haml +26 -0
- data/app/views/mno_enterprise/auth/sessions/material/_new.html.haml +11 -0
- data/app/views/mno_enterprise/auth/sessions/new.html.haml +4 -0
- data/app/views/mno_enterprise/auth/shared/_links.html.haml +24 -0
- data/app/views/mno_enterprise/auth/unlocks/new.html.haml +10 -0
- data/app/views/mno_enterprise/deletion_requests/show.html.haml +131 -0
- data/app/views/mno_enterprise/jpi/v1/admin/audit_events/_audit_event.json.jbuilder +5 -0
- data/app/views/mno_enterprise/jpi/v1/admin/audit_events/index.json.jbuilder +4 -0
- data/app/views/mno_enterprise/jpi/v1/admin/cloud_apps/_cloud_app.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/cloud_apps/index.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/cloud_apps/show.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/invoices/_invoice.json.jbuilder +2 -0
- data/app/views/mno_enterprise/jpi/v1/admin/invoices/index.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/invoices/show.json.jbuilder +2 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/_credit_card.json.jbuilder +7 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/_invoices.json.jbuilder +8 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/_member.json.jbuilder +14 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/_organization.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/in_arrears.json.jbuilder +8 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/index.json.jbuilder +7 -0
- data/app/views/mno_enterprise/jpi/v1/admin/organizations/show.json.jbuilder +11 -0
- data/app/views/mno_enterprise/jpi/v1/admin/tenant_invoices/_tenant_invoice.json.jbuilder +5 -0
- data/app/views/mno_enterprise/jpi/v1/admin/tenant_invoices/index.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/tenant_invoices/show.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/users/_user.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/admin/users/index.json.jbuilder +2 -0
- data/app/views/mno_enterprise/jpi/v1/admin/users/show.json.jbuilder +9 -0
- data/app/views/mno_enterprise/jpi/v1/app_instances/_resource.json.jbuilder +23 -0
- data/app/views/mno_enterprise/jpi/v1/app_instances/index.json.jbuilder +9 -0
- data/app/views/mno_enterprise/jpi/v1/app_instances/show.json.jbuilder +3 -0
- data/app/views/mno_enterprise/jpi/v1/billing/index.json.jbuilder +0 -0
- data/app/views/mno_enterprise/jpi/v1/current_users/show.json.jbuilder +37 -0
- data/app/views/mno_enterprise/jpi/v1/impac/dashboards/_dashboard.json.jbuilder +9 -0
- data/app/views/mno_enterprise/jpi/v1/impac/dashboards/index.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/impac/dashboards/show.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/impac/kpis/_kpi.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/impac/kpis/show.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/impac/widgets/_widget.json.jbuilder +6 -0
- data/app/views/mno_enterprise/jpi/v1/impac/widgets/show.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/marketplace/_app.json.jbuilder +14 -0
- data/app/views/mno_enterprise/jpi/v1/marketplace/index.json.jbuilder +3 -0
- data/app/views/mno_enterprise/jpi/v1/marketplace/show.json.jbuilder +3 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_arrears.json.jbuilder +11 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_billing.json.jbuilder +4 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_credit_card.json.jbuilder +7 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_current_user.json.jbuilder +5 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_invoices.json.jbuilder +8 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_member.json.jbuilder +13 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/_organization.json.jbuilder +13 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/credit_card.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/index.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/members.json.jbuilder +3 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/show.json.jbuilder +15 -0
- data/app/views/mno_enterprise/jpi/v1/organizations/show_reduced.json.jbuilder +3 -0
- data/app/views/mno_enterprise/jpi/v1/shopping_cart/organizations.json.jbuilder +5 -0
- data/app/views/mno_enterprise/jpi/v1/shopping_cart/show.json.jbuilder +59 -0
- data/app/views/mno_enterprise/jpi/v1/shopping_cart/show_item.json.jbuilder +34 -0
- data/app/views/mno_enterprise/jpi/v1/teams/_team.json.jbuilder +20 -0
- data/app/views/mno_enterprise/jpi/v1/teams/index.json.jbuilder +1 -0
- data/app/views/mno_enterprise/jpi/v1/teams/show.json.jbuilder +3 -0
- data/app/views/mno_enterprise/pages/app_access_unauthorized.html.haml +19 -0
- data/app/views/mno_enterprise/pages/app_logout.html.haml +18 -0
- data/app/views/mno_enterprise/pages/billing_details_required.html.haml +19 -0
- data/app/views/mno_enterprise/pages/loading.html.erb +69 -0
- data/app/views/mno_enterprise/provision/_provision_apps.html.haml +42 -0
- data/app/views/mno_enterprise/provision/_select_organization.html.haml +17 -0
- data/app/views/mno_enterprise/provision/new.html.haml +4 -0
- data/app/views/mno_enterprise/webhook/o_auth/authorize.html.haml +26 -0
- data/app/views/mno_enterprise/webhook/o_auth/providers/myob.html.haml +29 -0
- data/app/views/mno_enterprise/webhook/o_auth/providers/xero.html.haml +34 -0
- data/config/initializers/devise.rb +273 -0
- data/config/initializers/devise_extension.rb +9 -0
- data/config/initializers/devise_log.rb +12 -0
- data/config/initializers/health_check.rb +35 -0
- data/config/initializers/main_app_version.rb +6 -0
- data/config/routes.rb +152 -0
- data/lib/mno-enterprise-api.rb +1 -0
- data/lib/mno_enterprise/api.rb +14 -0
- data/lib/mno_enterprise/api/engine.rb +9 -0
- data/lib/mno_enterprise/concerns/controllers/deletion_requests_controller.rb +108 -0
- data/lib/mno_enterprise/concerns/controllers/jpi/v1/admin/base_resource_controller.rb +34 -0
- data/lib/mno_enterprise/concerns/controllers/jpi/v1/current_users_controller.rb +58 -0
- data/lib/mno_enterprise/concerns/controllers/jpi/v1/deletion_requests_controller.rb +69 -0
- data/lib/mno_enterprise/concerns/controllers/jpi/v1/impac/dashboards_controller.rb +76 -0
- data/lib/mno_enterprise/concerns/controllers/jpi/v1/organizations_controller.rb +180 -0
- data/lib/mno_enterprise/concerns/controllers/org_invites_controller.rb +44 -0
- data/lib/mno_enterprise/concerns/controllers/pages_controller.rb +78 -0
- data/lib/mno_enterprise/concerns/controllers/provision_controller.rb +71 -0
- data/lib/mno_enterprise/concerns/controllers/webhook/o_auth_controller.rb +107 -0
- data/lib/mno_enterprise/concerns/mailers/system_notification_mailer.rb +158 -0
- data/lib/mno_enterprise/event_logger.rb +32 -0
- data/spec/controllers/mno_enterprise/auth/confirmation_controller_spec.rb +68 -0
- data/spec/controllers/mno_enterprise/deletion_requests_controller_spec.rb +141 -0
- data/spec/controllers/mno_enterprise/impersonate_controller_spec.rb +48 -0
- data/spec/controllers/mno_enterprise/jpi/v1/admin/audit_events_controller_spec.rb +51 -0
- data/spec/controllers/mno_enterprise/jpi/v1/admin/cloud_apps_controller_spec.rb +92 -0
- data/spec/controllers/mno_enterprise/jpi/v1/admin/invoices_controller_spec.rb +159 -0
- data/spec/controllers/mno_enterprise/jpi/v1/admin/organizations_controller_spec.rb +116 -0
- data/spec/controllers/mno_enterprise/jpi/v1/admin/tenant_invoices_controller_spec.rb +92 -0
- data/spec/controllers/mno_enterprise/jpi/v1/admin/users_controller_spec.rb +136 -0
- data/spec/controllers/mno_enterprise/jpi/v1/app_instances_controller_spec.rb +76 -0
- data/spec/controllers/mno_enterprise/jpi/v1/app_instances_sync_controller_spec.rb +94 -0
- data/spec/controllers/mno_enterprise/jpi/v1/current_users_controller_spec.rb +128 -0
- data/spec/controllers/mno_enterprise/jpi/v1/deletion_requests_controller_spec.rb +72 -0
- data/spec/controllers/mno_enterprise/jpi/v1/impac/kpis_controller_spec.rb +80 -0
- data/spec/controllers/mno_enterprise/jpi/v1/marketplace_controller_spec.rb +115 -0
- data/spec/controllers/mno_enterprise/jpi/v1/organizations_controller_spec.rb +516 -0
- data/spec/controllers/mno_enterprise/jpi/v1/team_controller_spec.rb +86 -0
- data/spec/controllers/mno_enterprise/org_invites_controller_spec.rb +29 -0
- data/spec/controllers/mno_enterprise/pages_controller_spec.rb +49 -0
- data/spec/controllers/mno_enterprise/provision_controller_spec.rb +94 -0
- data/spec/controllers/mno_enterprise/status_controller_spec.rb +34 -0
- data/spec/controllers/mno_enterprise/webhook/o_auth_controller_spec.rb +104 -0
- data/spec/lib/mno_enterprise/event_logger_spec.rb +28 -0
- data/spec/mailer/mno_enterprise/system_notification_mailer_spec.rb +132 -0
- data/spec/rails_helper.rb +94 -0
- data/spec/requests/devise/authentication_spec.rb +43 -0
- data/spec/requests/devise/registration_spec.rb +64 -0
- data/spec/routing/devise/confirmation_routing_spec.rb +20 -0
- data/spec/routing/devise/passwords_routing_spec.rb +24 -0
- data/spec/routing/devise/registrations_routing_spec.rb +16 -0
- data/spec/routing/devise/sessions_routing_spec.rb +20 -0
- data/spec/routing/mno_enterprise/deletion_requests_controller_routing_spec.rb +20 -0
- data/spec/routing/mno_enterprise/impersonate_controller_routing.spec.rb +15 -0
- data/spec/routing/mno_enterprise/jpi/v1/admin/audit_events_controller_routing_spec.rb +11 -0
- data/spec/routing/mno_enterprise/jpi/v1/admin/cloud_apps_controller_routing_spec.rb +24 -0
- data/spec/routing/mno_enterprise/jpi/v1/admin/invoices_controller_routing_spec.rb +37 -0
- data/spec/routing/mno_enterprise/jpi/v1/admin/organizations_controller_routing_spec.rb +20 -0
- data/spec/routing/mno_enterprise/jpi/v1/admin/tenant_invoices_controller_routing_spec.rb +16 -0
- data/spec/routing/mno_enterprise/jpi/v1/admin/users_controller_routing_spec.rb +24 -0
- data/spec/routing/mno_enterprise/jpi/v1/app_instances_controller_routing_spec.rb +12 -0
- data/spec/routing/mno_enterprise/jpi/v1/app_instances_sync_controller_routing_spec.rb +15 -0
- data/spec/routing/mno_enterprise/jpi/v1/current_users_controller_routing_spec.rb +28 -0
- data/spec/routing/mno_enterprise/jpi/v1/deletion_requests_controller_routing_spec.rb +24 -0
- data/spec/routing/mno_enterprise/jpi/v1/impac/kpis_controller_routing_spec.rb +22 -0
- data/spec/routing/mno_enterprise/jpi/v1/marketplace_controller_routing_spec.rb +16 -0
- data/spec/routing/mno_enterprise/jpi/v1/organizations_controller_routing_spec.rb +44 -0
- data/spec/routing/mno_enterprise/jpi/v1/teams_controller_routing_spec.rb +36 -0
- data/spec/routing/mno_enterprise/org_invites_controller_routing_spec.rb +12 -0
- data/spec/routing/mno_enterprise/pages_controller_routing_spec.rb +29 -0
- data/spec/routing/mno_enterprise/provision_controller_routing_spec.rb +15 -0
- data/spec/routing/mno_enterprise/status_controller_routing_spec.rb +19 -0
- data/spec/routing/mno_enterprise/webhook/o_auth_controller_routing_spec.rb +27 -0
- data/spec/spec_helper.rb +88 -0
- metadata +402 -0
@@ -0,0 +1,94 @@
|
|
1
|
+
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
2
|
+
ENV["RAILS_ENV"] ||= 'test'
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'her'
|
5
|
+
require 'factory_girl_rails'
|
6
|
+
|
7
|
+
require 'mno_enterprise/testing_support/user_action_shared'
|
8
|
+
|
9
|
+
# Load the Dummy application
|
10
|
+
begin
|
11
|
+
require File.expand_path("../dummy/config/environment", __FILE__)
|
12
|
+
rescue LoadError
|
13
|
+
puts "Could not load dummy application. Please ensure you have run `bundle exec rake test_app`"
|
14
|
+
end
|
15
|
+
# require File.expand_path("../../spec/dummy/config/environment.rb", __FILE__)
|
16
|
+
|
17
|
+
require 'rspec/rails'
|
18
|
+
require 'shoulda/matchers'
|
19
|
+
|
20
|
+
# Check Dummy application migrations
|
21
|
+
ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../spec/dummy/db/migrate", __FILE__)]
|
22
|
+
ActiveRecord::Migrator.migrations_paths << File.expand_path('../../db/migrate', __FILE__)
|
23
|
+
|
24
|
+
|
25
|
+
# Requires supporting ruby files with custom matchers and macros, etc, in
|
26
|
+
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
|
27
|
+
# run as spec files by default. This means that files in spec/support that end
|
28
|
+
# in _spec.rb will both be required and run as specs, causing the specs to be
|
29
|
+
# run twice. It is recommended that you do not name files matching this glob to
|
30
|
+
# end with _spec.rb. You can configure this pattern with the --pattern
|
31
|
+
# option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
|
32
|
+
Dir[Rails.root.join("../..","spec/support/**/*.rb")].each { |f| require f }
|
33
|
+
|
34
|
+
# Require all factories
|
35
|
+
# Dir[Rails.root.join("../..", "spec/factories/**/*.rb")].each {|f| require f }
|
36
|
+
require 'mno_enterprise/testing_support/factories'
|
37
|
+
|
38
|
+
# Checks for pending migrations before tests are run.
|
39
|
+
# If you are not using ActiveRecord, you can remove this line.
|
40
|
+
ActiveRecord::Migration.maintain_test_schema!
|
41
|
+
|
42
|
+
RSpec.configure do |config|
|
43
|
+
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
44
|
+
# config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
45
|
+
|
46
|
+
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
47
|
+
# examples within a transaction, remove the following line or assign false
|
48
|
+
# instead of true.
|
49
|
+
# config.use_transactional_fixtures = true
|
50
|
+
|
51
|
+
# Include FactoryGirl methods to avoid typing FactoryGirl.create(...)
|
52
|
+
config.include FactoryGirl::Syntax::Methods
|
53
|
+
|
54
|
+
# Include MnoEnterpriseApiTestHelper
|
55
|
+
# Enable API stub helpers (e.g.: api_stub_for)
|
56
|
+
config.include MnoEnterpriseApiTestHelper
|
57
|
+
|
58
|
+
# Include ability test helper
|
59
|
+
config.include AbilityTestHelper, type: :controller
|
60
|
+
|
61
|
+
# Include devise tests
|
62
|
+
config.include Devise::TestHelpers, type: :controller
|
63
|
+
|
64
|
+
# Include Rails route helpers
|
65
|
+
config.include Rails.application.routes.url_helpers, type: :controller
|
66
|
+
|
67
|
+
# Reset API stubs before each step
|
68
|
+
config.before :each do
|
69
|
+
api_stub_reset
|
70
|
+
end
|
71
|
+
#Fix time rounding issues
|
72
|
+
ActiveSupport::JSON::Encoding.time_precision = 0
|
73
|
+
# RSpec Rails can automatically mix in different behaviours to your tests
|
74
|
+
# based on their file location, for example enabling you to call `get` and
|
75
|
+
# `post` in specs under `spec/controllers`.
|
76
|
+
#
|
77
|
+
# You can disable this behaviour by removing the line below, and instead
|
78
|
+
# explicitly tag your specs with their type, e.g.:
|
79
|
+
#
|
80
|
+
# RSpec.describe UsersController, :type => :controller do
|
81
|
+
# # ...
|
82
|
+
# end
|
83
|
+
#
|
84
|
+
# The different available types are documented in the features, such as in
|
85
|
+
# https://relishapp.com/rspec/rspec-rails/docs
|
86
|
+
config.infer_spec_type_from_file_location!
|
87
|
+
end
|
88
|
+
|
89
|
+
Shoulda::Matchers.configure do |config|
|
90
|
+
config.integrate do |with|
|
91
|
+
with.test_framework :rspec
|
92
|
+
with.library :rails
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe "Remote Authentication", type: :request do
|
5
|
+
|
6
|
+
let(:user) { build(:user) }
|
7
|
+
before { api_stub_for(get: "/users/#{user.id}", response: from_api(user)) }
|
8
|
+
before { api_stub_for(put: "/users/#{user.id}", response: from_api(user)) }
|
9
|
+
|
10
|
+
# Stub session authentication
|
11
|
+
let(:session_resp_code) { 200 }
|
12
|
+
let(:session_resp) { from_api(user) }
|
13
|
+
before { api_stub_for(post: '/user_sessions',
|
14
|
+
code: -> { session_resp_code },
|
15
|
+
response: -> { session_resp }
|
16
|
+
) }
|
17
|
+
|
18
|
+
describe 'login' do
|
19
|
+
subject { post '/mnoe/auth/users/sign_in', user: {email: user.email, password: 'securepassword'} }
|
20
|
+
|
21
|
+
describe 'success' do
|
22
|
+
before { subject }
|
23
|
+
|
24
|
+
it 'logs the user in' do
|
25
|
+
expect(controller).to be_user_signed_in
|
26
|
+
expect(controller.current_user.id).to eq(user.id)
|
27
|
+
expect(controller.current_user.name).to eq(user.name)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe 'failure' do
|
32
|
+
let(:session_resp_code) { 404 }
|
33
|
+
let(:session_resp) { {errors: "does not exist"} }
|
34
|
+
before { subject }
|
35
|
+
|
36
|
+
it 'does logs the user in' do
|
37
|
+
expect(controller).to_not be_user_signed_in
|
38
|
+
expect(controller.current_user).to be_nil
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe "Remote Registration", type: :request do
|
5
|
+
|
6
|
+
let(:confirmation_token) { 'wky763pGjtzWR7dP44PD' }
|
7
|
+
let(:user) { build(:user, :unconfirmed, confirmation_token: confirmation_token) }
|
8
|
+
let(:email_uniq_resp) { [] }
|
9
|
+
let(:signup_attrs) { {name: "John", surname: "Doe", email: 'john@doecorp.com', password: 'securepassword'} }
|
10
|
+
|
11
|
+
# Stub user calls
|
12
|
+
before { api_stub_for(post: '/users', response: from_api(user)) }
|
13
|
+
before { api_stub_for(get: "/users/#{user.id}", response: from_api(user)) }
|
14
|
+
before { api_stub_for(put: "/users/#{user.id}", response: from_api(user)) }
|
15
|
+
|
16
|
+
# Stub user retrieval using confirmation token
|
17
|
+
before { api_stub_for(
|
18
|
+
get: '/users',
|
19
|
+
params: {filter: {confirmation_token: '**'}, limit: 1},
|
20
|
+
response: from_api([])
|
21
|
+
) }
|
22
|
+
|
23
|
+
# Stub user email uniqueness check
|
24
|
+
before { api_stub_for(
|
25
|
+
get: '/users',
|
26
|
+
params: {filter: {email: '**'}, limit: 1},
|
27
|
+
response: -> { from_api(email_uniq_resp) }
|
28
|
+
) }
|
29
|
+
|
30
|
+
# Stub org_invites retrieval
|
31
|
+
before { api_stub_for(get: '/org_invites', response: from_api([])) }
|
32
|
+
|
33
|
+
|
34
|
+
describe 'signup' do
|
35
|
+
subject { post '/mnoe/auth/users', user: signup_attrs }
|
36
|
+
|
37
|
+
describe 'success' do
|
38
|
+
before { subject }
|
39
|
+
|
40
|
+
it 'signs the user up' do
|
41
|
+
expect(controller).to be_user_signed_in
|
42
|
+
curr_user = controller.current_user
|
43
|
+
expect(curr_user.id).to eq(user.id)
|
44
|
+
expect(curr_user.name).to eq(user.name)
|
45
|
+
expect(curr_user.surname).to eq(user.surname)
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'redirects to the confirmation lounge' do
|
49
|
+
expect(response).to redirect_to('/mnoe/auth/users/confirmation/lounge')
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe 'failure' do
|
54
|
+
let(:email_uniq_resp) { [from_api(user)] }
|
55
|
+
before { subject }
|
56
|
+
|
57
|
+
it 'does not log the user in' do
|
58
|
+
expect(controller).to_not be_user_signed_in
|
59
|
+
expect(controller.current_user).to be_nil
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe Devise::ConfirmationsController, type: :routing do
|
5
|
+
routes { MnoEnterprise::Engine.routes }
|
6
|
+
|
7
|
+
it 'routes to #show' do
|
8
|
+
expect(get('/auth/users/confirmation?confirmation_token=bla')).to route_to("mno_enterprise/auth/confirmations#show", confirmation_token: 'bla')
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'routes to #finalize' do
|
12
|
+
expect(patch('/auth/users/confirmation/finalize')).to route_to("mno_enterprise/auth/confirmations#finalize")
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'routes to #lounge' do
|
16
|
+
expect(get('/auth/users/confirmation/lounge')).to route_to("mno_enterprise/auth/confirmations#lounge")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe Devise::PasswordsController, type: :routing do
|
5
|
+
routes { MnoEnterprise::Engine.routes }
|
6
|
+
|
7
|
+
it 'routes to #new' do
|
8
|
+
expect(get('/auth/users/password/new')).to route_to("mno_enterprise/auth/passwords#new")
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'routes to #edit' do
|
12
|
+
expect(get('/auth/users/password/edit')).to route_to("mno_enterprise/auth/passwords#edit")
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'routes to #update' do
|
16
|
+
expect(put('/auth/users/password')).to route_to("mno_enterprise/auth/passwords#update")
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'routes to #create' do
|
20
|
+
expect(post('/auth/users/password')).to route_to("mno_enterprise/auth/passwords#create")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe Devise::RegistrationsController, type: :routing do
|
5
|
+
routes { MnoEnterprise::Engine.routes }
|
6
|
+
|
7
|
+
it 'routes to #new' do
|
8
|
+
expect(get('/auth/users/sign_up')).to route_to("mno_enterprise/auth/registrations#new")
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'routes to #create' do
|
12
|
+
expect(post('/auth/users')).to route_to("mno_enterprise/auth/registrations#create")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe Devise::SessionsController, type: :routing do
|
5
|
+
routes { MnoEnterprise::Engine.routes }
|
6
|
+
|
7
|
+
it 'routes to #new' do
|
8
|
+
expect(get('/auth/users/sign_in')).to route_to("mno_enterprise/auth/sessions#new")
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'routes to #create' do
|
12
|
+
expect(post('/auth/users/sign_in')).to route_to("mno_enterprise/auth/sessions#create")
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'routes to #destroy' do
|
16
|
+
expect(delete('/auth/users/sign_out')).to route_to("mno_enterprise/auth/sessions#destroy")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require "rails_helper"
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe DeletionRequestsController, type: :routing do
|
5
|
+
routes { MnoEnterprise::Engine.routes }
|
6
|
+
|
7
|
+
it "routes to #show" do
|
8
|
+
expect(get("/deletion_requests/1")).to route_to("mno_enterprise/deletion_requests#show", id: '1')
|
9
|
+
end
|
10
|
+
|
11
|
+
it "routes to #freeze_account" do
|
12
|
+
expect(patch("/deletion_requests/1/freeze_account")).to route_to("mno_enterprise/deletion_requests#freeze_account", id: '1')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'routes to #checkout' do
|
16
|
+
expect(patch("/deletion_requests/1/checkout")).to route_to("mno_enterprise/deletion_requests#checkout", id: '1')
|
17
|
+
end
|
18
|
+
it 'routes to #terminate_account'
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "rails_helper"
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe ImpersonateController, type: :routing do
|
5
|
+
routes { MnoEnterprise::Engine.routes }
|
6
|
+
|
7
|
+
it "routes to #create" do
|
8
|
+
expect(get("/impersonate/user/1")).to route_to("mno_enterprise/impersonate#create", user_id: '1')
|
9
|
+
end
|
10
|
+
|
11
|
+
it "routes to #destroy" do
|
12
|
+
expect(delete("/impersonate/revert")).to route_to("mno_enterprise/impersonate#destroy")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe Jpi::V1::Admin::AuditEventsController, type: :routing do
|
5
|
+
routes { MnoEnterprise::Engine.routes }
|
6
|
+
|
7
|
+
it 'routes to #index' do
|
8
|
+
expect(get('/jpi/v1/admin/audit_events')).to route_to('mno_enterprise/jpi/v1/admin/audit_events#index', format: "json")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe Jpi::V1::Admin::CloudAppsController, type: :routing do
|
5
|
+
routes { MnoEnterprise::Engine.routes }
|
6
|
+
|
7
|
+
it 'routes to #index' do
|
8
|
+
expect(get('/jpi/v1/admin/cloud_apps')).to route_to('mno_enterprise/jpi/v1/admin/cloud_apps#index', format: 'json')
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'routes to #update' do
|
12
|
+
expect(put('/jpi/v1/admin/cloud_apps/1')).to route_to('mno_enterprise/jpi/v1/admin/cloud_apps#update', id: '1', format: 'json')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'routes to #regenerate_api_key' do
|
16
|
+
expect(put('/jpi/v1/admin/cloud_apps/1/regenerate_api_key')).to route_to('mno_enterprise/jpi/v1/admin/cloud_apps#regenerate_api_key', id: '1', format: 'json')
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'routes to #refresh_metadata' do
|
20
|
+
expect(put('/jpi/v1/admin/cloud_apps/1/refresh_metadata')).to route_to('mno_enterprise/jpi/v1/admin/cloud_apps#refresh_metadata', id: '1', format: 'json')
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe Jpi::V1::Admin::InvoicesController, type: :routing do
|
5
|
+
routes { MnoEnterprise::Engine.routes }
|
6
|
+
|
7
|
+
it 'routes to #index' do
|
8
|
+
expect(get('/jpi/v1/admin/invoices')).to route_to("mno_enterprise/jpi/v1/admin/invoices#index", format: "json")
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'routes to #show' do
|
12
|
+
expect(get('/jpi/v1/admin/invoices/1')).to route_to("mno_enterprise/jpi/v1/admin/invoices#show", format: "json", id: '1')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'routes to #current_billing_amount' do
|
16
|
+
expect(get('/jpi/v1/admin/invoices/current_billing_amount')).to route_to("mno_enterprise/jpi/v1/admin/invoices#current_billing_amount", format: "json")
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'routes to #last_invoicing_amount' do
|
20
|
+
expect(get('/jpi/v1/admin/invoices/last_invoicing_amount')).to route_to("mno_enterprise/jpi/v1/admin/invoices#last_invoicing_amount", format: "json")
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'routes to #outstanding_amount' do
|
24
|
+
expect(get('/jpi/v1/admin/invoices/outstanding_amount')).to route_to("mno_enterprise/jpi/v1/admin/invoices#outstanding_amount", format: "json")
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'routes to #last_portfolio_amount' do
|
28
|
+
expect(get('/jpi/v1/admin/invoices/last_portfolio_amount')).to route_to('mno_enterprise/jpi/v1/admin/invoices#last_portfolio_amount', format: 'json')
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'routes to #last_commission_amount' do
|
32
|
+
expect(get('/jpi/v1/admin/invoices/last_commission_amount')).to route_to('mno_enterprise/jpi/v1/admin/invoices#last_commission_amount', format: 'json')
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe Jpi::V1::Admin::OrganizationsController, type: :routing do
|
5
|
+
routes { MnoEnterprise::Engine.routes }
|
6
|
+
|
7
|
+
it 'routes to #index' do
|
8
|
+
expect(get('/jpi/v1/admin/organizations')).to route_to("mno_enterprise/jpi/v1/admin/organizations#index", format: "json")
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'routes to #show' do
|
12
|
+
expect(get('/jpi/v1/admin/organizations/1')).to route_to("mno_enterprise/jpi/v1/admin/organizations#show", format: "json", id: '1')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'routes to #in_arrears' do
|
16
|
+
expect(get('/jpi/v1/admin/organizations/in_arrears')).to route_to("mno_enterprise/jpi/v1/admin/organizations#in_arrears", format: "json")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module MnoEnterprise
|
4
|
+
RSpec.describe Jpi::V1::Admin::TenantInvoicesController, type: :routing do
|
5
|
+
routes { MnoEnterprise::Engine.routes }
|
6
|
+
|
7
|
+
it 'routes to #index' do
|
8
|
+
expect(get('/jpi/v1/admin/tenant_invoices')).to route_to("mno_enterprise/jpi/v1/admin/tenant_invoices#index", format: "json")
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'routes to #show' do
|
12
|
+
expect(get('/jpi/v1/admin/tenant_invoices/1')).to route_to("mno_enterprise/jpi/v1/admin/tenant_invoices#show", format: "json", id: '1')
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|