Path: blob/master/spec/shared_examples/views/vuln_api.rb
485 views
# frozen_string_literal: true12shared_examples 'App::Views::VulnApi' do3let(:controller) { WPScan::Controller::VulnApi.new }4let(:tpl_vars) { { url: target_url } }56describe 'status' do7let(:view) { 'status' }89context 'when no api token is given' do10let(:expected_view) { 'no_token' }1112it 'outputs the expected string' do13@tpl_vars = tpl_vars.merge(status: {})14end15end1617context 'when http error' do18let(:expected_view) { 'http_error' }1920it 'outputs the expected string' do21@tpl_vars = tpl_vars.merge(22status: {23'http_error' => WPScan::Error::HTTP.new(Typhoeus::Response.new(effective_url: 'url', return_code: 28))24}25)26end27end2829context 'when no more remaining requests' do30let(:expected_view) { 'no_more_requests' }3132it 'outputs the expected string' do33@tpl_vars = tpl_vars.merge(34status: { 'success' => true, 'plan' => 'free', 'requests_remaining' => 0 },35api_requests: 336)37end38end3940context 'when everything is fine' do41let(:expected_view) { 'all_ok' }4243it 'outputs the expected string' do44@tpl_vars = tpl_vars.merge(45status: { 'success' => true, 'plan' => 'paid', 'requests_remaining' => 120 },46api_requests: 347)48end49end5051context 'when unlimited requests' do52let(:expected_view) { 'unlimited_requests' }5354it 'outputs the expected string' do55@tpl_vars = tpl_vars.merge(56status: { 'success' => true, 'plan' => 'enterprise', 'requests_remaining' => 'Unlimited' },57api_requests: 358)59end60end61end62end636465