Remove unused code and tests
This commit is contained in:
parent
ff46ee366e
commit
e61e39d345
33 changed files with 1 additions and 1048 deletions
1
Gemfile
1
Gemfile
|
@ -64,7 +64,6 @@ gem 'rgeo-geojson'
|
|||
gem 'sanitize-url'
|
||||
gem 'sassc-rails' # Use SCSS for stylesheets
|
||||
gem 'scenic'
|
||||
gem 'select2-rails'
|
||||
gem 'sentry-raven'
|
||||
gem 'skylight'
|
||||
gem 'smart_listing'
|
||||
|
|
|
@ -592,8 +592,6 @@ GEM
|
|||
scss_lint (0.57.1)
|
||||
rake (>= 0.9, < 13)
|
||||
sass (~> 3.5, >= 3.5.5)
|
||||
select2-rails (4.0.3)
|
||||
thor (~> 0.14)
|
||||
selectize-rails (0.12.6)
|
||||
selenium-webdriver (3.141.0)
|
||||
childprocess (~> 0.5)
|
||||
|
@ -793,7 +791,6 @@ DEPENDENCIES
|
|||
sassc-rails
|
||||
scenic
|
||||
scss_lint
|
||||
select2-rails
|
||||
sentry-raven
|
||||
shoulda-matchers
|
||||
simple_xlsx_reader
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
// = require search
|
||||
// = require site_banner
|
||||
// = require switch_menu
|
||||
// = require autocomplete
|
||||
// = require users
|
||||
// = require attestation_template_edit
|
||||
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
.algolia-autocomplete {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.algolia-autocomplete .aa-input,
|
||||
.algolia-autocomplete .aa-hint {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.algolia-autocomplete .aa-hint {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.algolia-autocomplete .aa-dropdown-menu {
|
||||
width: 100%;
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #999999;
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion {
|
||||
cursor: pointer;
|
||||
padding: 5px 4px;
|
||||
}
|
||||
|
||||
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor {
|
||||
background-color: #B2D7FF;
|
||||
}
|
||||
|
||||
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion em {
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
|
@ -5,6 +5,5 @@
|
|||
// = require ./fonts
|
||||
// = require leaflet
|
||||
// = require select2
|
||||
// = require autocomplete
|
||||
// = require_tree .
|
||||
// = stub ./print.scss
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
class AddressController < ApplicationController
|
||||
def suggestions
|
||||
request = params[:request]
|
||||
|
||||
json = ApiAdresse::AddressAdapter.new(request).get_suggestions.map do |value|
|
||||
{ label: value }
|
||||
end.to_json
|
||||
|
||||
render json: json
|
||||
end
|
||||
|
||||
def geocode
|
||||
request = params[:request]
|
||||
|
||||
point = ApiAdresse::PointAdapter.new(request).geocode
|
||||
|
||||
if point.present?
|
||||
lon = point.x.to_s
|
||||
lat = point.y.to_s
|
||||
end
|
||||
|
||||
render json: { lon: lon, lat: lat, zoom: '14', dossier_id: params[:dossier_id] }
|
||||
end
|
||||
end
|
|
@ -1,51 +0,0 @@
|
|||
import autocomplete from 'autocomplete.js';
|
||||
import { getJSON, fire } from '@utils';
|
||||
|
||||
const sources = [
|
||||
{
|
||||
type: 'address',
|
||||
url: '/address/suggestions'
|
||||
}
|
||||
];
|
||||
|
||||
const options = {
|
||||
autoselect: true,
|
||||
minLength: 1
|
||||
};
|
||||
|
||||
function selector(type) {
|
||||
return `[data-autocomplete=${type}]`;
|
||||
}
|
||||
|
||||
function source(url) {
|
||||
return {
|
||||
source(query, callback) {
|
||||
getJSON(url, { request: query }).then(callback);
|
||||
},
|
||||
templates: {
|
||||
suggestion({ label, mine }) {
|
||||
const mineClass = `path-mine-${mine ? 'true' : 'false'}`;
|
||||
const openTag = `<div class="aa-suggestion ${mineClass}">`;
|
||||
return autocomplete.escapeHighlightedString(label, openTag, '</div>');
|
||||
}
|
||||
},
|
||||
debounce: 300
|
||||
};
|
||||
}
|
||||
|
||||
addEventListener('ds:page:update', function() {
|
||||
for (let { type, url } of sources) {
|
||||
for (let element of document.querySelectorAll(selector(type))) {
|
||||
element.removeAttribute('data-autocomplete');
|
||||
autocompleteInitializeElement(element, url);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function autocompleteInitializeElement(element, url) {
|
||||
const select = autocomplete(element, options, [source(url)]);
|
||||
select.on('autocomplete:selected', ({ target }, suggestion) => {
|
||||
fire(target, 'autocomplete:select', suggestion);
|
||||
select.autocomplete.setVal(suggestion.label);
|
||||
});
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
class ApiAdresse::Adapter
|
||||
private
|
||||
|
||||
def initialize(address, limit, blank_return)
|
||||
@address = address
|
||||
@limit = limit
|
||||
@blank_return = blank_return
|
||||
end
|
||||
|
||||
def features
|
||||
@features ||= get_features
|
||||
end
|
||||
|
||||
def get_features
|
||||
response = ApiAdresse::API.call(@address, @limit)
|
||||
result = JSON.parse(response)
|
||||
result['features']
|
||||
rescue RestClient::Exception, JSON::ParserError, TypeError
|
||||
@blank_return
|
||||
end
|
||||
|
||||
def handle_result
|
||||
if features.present?
|
||||
process_features
|
||||
else
|
||||
@blank_return
|
||||
end
|
||||
end
|
||||
|
||||
def process_features
|
||||
raise NoMethodError
|
||||
end
|
||||
end
|
|
@ -1,17 +0,0 @@
|
|||
class ApiAdresse::AddressAdapter < ApiAdresse::Adapter
|
||||
def initialize(address)
|
||||
super(address, 5, [])
|
||||
end
|
||||
|
||||
def get_suggestions
|
||||
handle_result
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def process_features
|
||||
features.map do |feature|
|
||||
feature['properties']['label']
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,12 +0,0 @@
|
|||
class ApiAdresse::API
|
||||
def self.call(address, limit = 1)
|
||||
search_url = [API_ADRESSE_URL, "search"].join("/")
|
||||
|
||||
RestClient::Request.execute(method: :get,
|
||||
url: search_url,
|
||||
timeout: 5,
|
||||
headers: { params: { q: address, limit: limit } })
|
||||
rescue RestClient::ServiceUnavailable
|
||||
nil
|
||||
end
|
||||
end
|
|
@ -1,15 +0,0 @@
|
|||
class ApiAdresse::PointAdapter < ApiAdresse::Adapter
|
||||
def initialize(address)
|
||||
super(address, 1, nil)
|
||||
end
|
||||
|
||||
def geocode
|
||||
handle_result
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def process_features
|
||||
RGeo::GeoJSON.decode(features[0]['geometry'], json_parser: :json)
|
||||
end
|
||||
end
|
|
@ -1,57 +0,0 @@
|
|||
class ApiGeo::API
|
||||
TIMEOUT = 15
|
||||
CACHE_DURATION = 1.day
|
||||
|
||||
def self.regions
|
||||
url = [API_GEO_URL, "regions"].join("/")
|
||||
call(url, { fields: :nom })
|
||||
end
|
||||
|
||||
def self.departements
|
||||
url = [API_GEO_URL, "departements"].join("/")
|
||||
call(url, { fields: :nom })
|
||||
end
|
||||
|
||||
def self.pays
|
||||
parse(File.open('app/lib/api_geo/pays.json').read)
|
||||
end
|
||||
|
||||
def self.search_rpg(geojson)
|
||||
url = [API_GEO_SANDBOX_URL, "rpg", "parcelles", "search"].join("/")
|
||||
call(url, geojson, :post)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def self.parse(body)
|
||||
JSON.parse(body, symbolize_names: true)
|
||||
end
|
||||
|
||||
def self.call(url, body, method = :get)
|
||||
# The cache engine is stored, because as of Typhoeus 1.3.1 the cache engine instance
|
||||
# is included in the computed `cache_key`.
|
||||
# (Which means that when the cache instance changes, the cache is invalidated.)
|
||||
@typhoeus_cache ||= Typhoeus::Cache::SuccessfulRequestsRailsCache.new
|
||||
|
||||
response = Typhoeus::Request.new(
|
||||
url,
|
||||
method: method,
|
||||
params: method == :get ? body : nil,
|
||||
body: method == :post ? body : nil,
|
||||
timeout: TIMEOUT,
|
||||
accept_encoding: 'gzip',
|
||||
headers: {
|
||||
'Accept' => 'application/json',
|
||||
'Accept-Encoding' => 'gzip, deflate'
|
||||
}.merge(method == :post ? { 'Content-Type' => 'application/json' } : {}),
|
||||
cache: @typhoeus_cache,
|
||||
cache_ttl: CACHE_DURATION
|
||||
).run
|
||||
|
||||
if response.success?
|
||||
parse(response.body)
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,27 +0,0 @@
|
|||
class ApiGeo::RPGAdapter
|
||||
def initialize(coordinates)
|
||||
@coordinates = GeojsonService.to_json_polygon_for_rpg(coordinates)
|
||||
end
|
||||
|
||||
def data_source
|
||||
@data_source ||= ApiGeo::API.search_rpg(@coordinates)
|
||||
end
|
||||
|
||||
def results
|
||||
data_source[:features].map do |feature|
|
||||
feature[:properties]
|
||||
.stringify_keys
|
||||
.transform_keys(&:underscore)
|
||||
.symbolize_keys
|
||||
.slice(
|
||||
:culture,
|
||||
:code_culture,
|
||||
:surface,
|
||||
:bio
|
||||
).merge({
|
||||
geometry: feature[:geometry],
|
||||
geo_reference_id: feature[:properties][:id]
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,9 +1,6 @@
|
|||
# API URLs
|
||||
API_ADRESSE_URL = ENV.fetch("API_ADRESSE_URL", "https://api-adresse.data.gouv.fr")
|
||||
API_CARTO_URL = ENV.fetch("API_CARTO_URL", "https://sandbox.geo.api.gouv.fr/apicarto")
|
||||
API_ENTREPRISE_URL = ENV.fetch("API_ENTREPRISE_URL", "https://entreprise.api.gouv.fr/v2")
|
||||
API_GEO_URL = ENV.fetch("API_GEO_URL", "https://geo.api.gouv.fr")
|
||||
API_GEO_SANDBOX_URL = ENV.fetch("API_GEO_SANDBOX_URL", "https://sandbox.geo.api.gouv.fr")
|
||||
HELPSCOUT_API_URL = ENV.fetch("HELPSCOUT_API_URL", "https://api.helpscout.net/v2")
|
||||
PIPEDRIVE_API_URL = ENV.fetch("PIPEDRIVE_API_URL", "https://api.pipedrive.com/v1")
|
||||
SENDINBLUE_API_URL = ENV.fetch("SENDINBLUE_API_URL", "https://in-automate.sendinblue.com/api/v2")
|
||||
|
|
|
@ -208,13 +208,6 @@ Rails.application.routes.draw do
|
|||
resources :instructeurs, only: [:index, :create, :destroy]
|
||||
end
|
||||
|
||||
#
|
||||
# Addresses
|
||||
#
|
||||
|
||||
get 'address/suggestions' => 'address#suggestions'
|
||||
get 'address/geocode' => 'address#geocode'
|
||||
|
||||
resources :invites, only: [:show] do
|
||||
collection do
|
||||
post 'dossier/:dossier_id', to: 'invites#create', as: :dossier
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
"@rails/webpacker": "4.0.7",
|
||||
"@sentry/browser": "^5.7.1",
|
||||
"@turf/area": "^6.0.1",
|
||||
"autocomplete.js": "^0.37.0",
|
||||
"babel-plugin-macros": "^2.6.1",
|
||||
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
|
||||
"chartkick": "^3.1.3",
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe AddressController, type: :controller do
|
||||
describe '#GET suggestions' do
|
||||
subject { get :suggestions, params: { request: request } }
|
||||
|
||||
before do
|
||||
subject
|
||||
end
|
||||
|
||||
context 'when request return result', vcr: { cassette_name: 'api_adresse_search_paris_2' } do
|
||||
let (:request) { 'Paris' }
|
||||
|
||||
it { expect(response.status).to eq 200 }
|
||||
it { expect(response.body).to eq '[{"label":"Paris"},{"label":"Paris 63120 Courpière"},{"label":"PARIS (Vaillac) 46240 Cœur de Causse"},{"label":"Paris 40500 Saint-Sever"},{"label":"Paris Buton 37140 Bourgueil"}]' }
|
||||
end
|
||||
|
||||
context 'when request return nothing', vcr: { cassette_name: 'api_adresse_search_nothing_2' } do
|
||||
let (:request) { 'je recherche pas grand chose' }
|
||||
|
||||
it { expect(response.status).to eq 200 }
|
||||
it { expect(response.body).to eq "[]" }
|
||||
end
|
||||
end
|
||||
|
||||
describe '#GET geocode' do
|
||||
let(:dossier_id) { "1" }
|
||||
subject { get :geocode, params: { request: request, dossier_id: dossier_id } }
|
||||
|
||||
before do
|
||||
subject
|
||||
end
|
||||
|
||||
context 'when request return result', vcr: { cassette_name: 'api_adresse_search_paris' } do
|
||||
let(:request) { 'Paris' }
|
||||
|
||||
it { expect(response.body).to eq ({ lon: '2.3469', lat: '48.8589', zoom: '14', dossier_id: dossier_id }).to_json }
|
||||
end
|
||||
|
||||
context 'when request return nothing', vcr: { cassette_name: 'api_adresse_search_nothing' } do
|
||||
let(:request) { 'je recherche pas grand chose' }
|
||||
|
||||
it { expect(response.body).to eq ({ lon: nil, lat: nil, zoom: '14', dossier_id: dossier_id }).to_json }
|
||||
end
|
||||
end
|
||||
end
|
|
@ -77,7 +77,7 @@ feature 'Creating a new dossier:' do
|
|||
.to_return(status: 404, body: '')
|
||||
end
|
||||
|
||||
scenario 'the user can enter the SIRET of its etablissement and create a new draft', vcr: { cassette_name: 'api_adresse_search_paris_3' } do
|
||||
scenario 'the user can enter the SIRET of its etablissement and create a new draft' do
|
||||
visit commencer_path(path: procedure.path)
|
||||
click_on 'Commencer la démarche'
|
||||
|
||||
|
|
47
spec/fixtures/cassettes/api_adresse_octo.yml
vendored
47
spec/fixtures/cassettes/api_adresse_octo.yml
vendored
|
@ -1,47 +0,0 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://api-adresse.data.gouv.fr/search?limit=1&q=50%20av%20des%20champs%20elysees
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- "*/*"
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
User-Agent:
|
||||
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.3.1p112
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
headers:
|
||||
Server:
|
||||
- nginx/1.11.3
|
||||
Date:
|
||||
- Fri, 16 Dec 2016 16:22:23 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Content-Length:
|
||||
- '628'
|
||||
Connection:
|
||||
- keep-alive
|
||||
Access-Control-Allow-Origin:
|
||||
- "*"
|
||||
Access-Control-Allow-Headers:
|
||||
- X-Requested-With
|
||||
body:
|
||||
encoding: UTF-8
|
||||
string: '{"limit": 1, "attribution": "BAN", "version": "draft", "licence": "ODbL
|
||||
1.0", "query": "50 av des champs elysees", "type": "FeatureCollection", "features":
|
||||
[{"geometry": {"type": "Point", "coordinates": [2.306888, 48.870374]}, "properties":
|
||||
{"citycode": "75108", "postcode": "75008", "name": "50 Avenue des Champs \u00c9lys\u00e9es",
|
||||
"id": "ADRNIVX_0000000270748251", "type": "housenumber", "context": "75, \u00cele-de-France",
|
||||
"score": 0.7561038961038961, "label": "50 Avenue des Champs \u00c9lys\u00e9es
|
||||
75008 Paris", "city": "Paris", "housenumber": "50", "street": "Avenue des
|
||||
Champs \u00c9lys\u00e9es"}, "type": "Feature"}]}'
|
||||
http_version:
|
||||
recorded_at: Fri, 16 Dec 2016 16:22:23 GMT
|
||||
recorded_with: VCR 3.0.3
|
|
@ -1,42 +0,0 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://api-adresse.data.gouv.fr/search?limit=1&q=je%20recherche%20pas%20grand%20chose
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- "*/*"
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
User-Agent:
|
||||
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.3.1p112
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
headers:
|
||||
Server:
|
||||
- nginx/1.11.3
|
||||
Date:
|
||||
- Fri, 16 Dec 2016 14:17:40 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Content-Length:
|
||||
- '163'
|
||||
Connection:
|
||||
- keep-alive
|
||||
Access-Control-Allow-Origin:
|
||||
- "*"
|
||||
Access-Control-Allow-Headers:
|
||||
- X-Requested-With
|
||||
body:
|
||||
encoding: UTF-8
|
||||
string: '{"limit": 1, "attribution": "BAN", "version": "draft", "licence": "ODbL
|
||||
1.0", "query": "je recherche pas grand chose", "type": "FeatureCollection",
|
||||
"features": []}'
|
||||
http_version:
|
||||
recorded_at: Fri, 16 Dec 2016 14:17:40 GMT
|
||||
recorded_with: VCR 3.0.3
|
|
@ -1,42 +0,0 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://api-adresse.data.gouv.fr/search?limit=5&q=je%20recherche%20pas%20grand%20chose
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- "*/*"
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
User-Agent:
|
||||
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.3.1p112
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
headers:
|
||||
Server:
|
||||
- nginx/1.11.3
|
||||
Date:
|
||||
- Fri, 16 Dec 2016 16:45:53 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Content-Length:
|
||||
- '163'
|
||||
Connection:
|
||||
- keep-alive
|
||||
Access-Control-Allow-Origin:
|
||||
- "*"
|
||||
Access-Control-Allow-Headers:
|
||||
- X-Requested-With
|
||||
body:
|
||||
encoding: UTF-8
|
||||
string: '{"limit": 5, "attribution": "BAN", "version": "draft", "licence": "ODbL
|
||||
1.0", "query": "je recherche pas grand chose", "type": "FeatureCollection",
|
||||
"features": []}'
|
||||
http_version:
|
||||
recorded_at: Fri, 16 Dec 2016 16:45:53 GMT
|
||||
recorded_with: VCR 3.0.3
|
|
@ -1,45 +0,0 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://api-adresse.data.gouv.fr/search?limit=1&q=Paris
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- "*/*"
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
User-Agent:
|
||||
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.3.1p112
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
headers:
|
||||
Server:
|
||||
- nginx/1.11.3
|
||||
Date:
|
||||
- Fri, 16 Dec 2016 14:16:43 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Content-Length:
|
||||
- '457'
|
||||
Connection:
|
||||
- keep-alive
|
||||
Access-Control-Allow-Origin:
|
||||
- "*"
|
||||
Access-Control-Allow-Headers:
|
||||
- X-Requested-With
|
||||
body:
|
||||
encoding: UTF-8
|
||||
string: '{"limit": 1, "attribution": "BAN", "version": "draft", "licence": "ODbL
|
||||
1.0", "query": "Paris", "type": "FeatureCollection", "features": [{"geometry":
|
||||
{"type": "Point", "coordinates": [2.3469, 48.8589]}, "properties": {"adm_weight":
|
||||
"6", "citycode": "75056", "name": "Paris", "city": "Paris", "postcode": "75000",
|
||||
"context": "75, \u00cele-de-France", "score": 1.0, "label": "Paris", "id":
|
||||
"75056", "type": "city", "population": "2244"}, "type": "Feature"}]}'
|
||||
http_version:
|
||||
recorded_at: Fri, 16 Dec 2016 14:16:43 GMT
|
||||
recorded_with: VCR 3.0.3
|
|
@ -1,63 +0,0 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://api-adresse.data.gouv.fr/search?limit=5&q=Paris
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- "*/*"
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
User-Agent:
|
||||
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.3.1p112
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
headers:
|
||||
Server:
|
||||
- nginx/1.11.3
|
||||
Date:
|
||||
- Fri, 16 Dec 2016 16:43:34 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Content-Length:
|
||||
- '1887'
|
||||
Connection:
|
||||
- keep-alive
|
||||
Access-Control-Allow-Origin:
|
||||
- "*"
|
||||
Access-Control-Allow-Headers:
|
||||
- X-Requested-With
|
||||
body:
|
||||
encoding: UTF-8
|
||||
string: '{"limit": 5, "attribution": "BAN", "version": "draft", "licence": "ODbL
|
||||
1.0", "query": "Paris", "type": "FeatureCollection", "features": [{"geometry":
|
||||
{"type": "Point", "coordinates": [2.3469, 48.8589]}, "properties": {"adm_weight":
|
||||
"6", "citycode": "75056", "name": "Paris", "city": "Paris", "postcode": "75000",
|
||||
"context": "75, \u00cele-de-France", "score": 1.0, "label": "Paris", "id":
|
||||
"75056", "type": "city", "population": "2244"}, "type": "Feature"}, {"geometry":
|
||||
{"type": "Point", "coordinates": [3.564293, 45.766413]}, "properties": {"citycode":
|
||||
"63125", "postcode": "63120", "name": "Paris", "city": "Courpi\u00e8re", "context":
|
||||
"63, Puy-de-D\u00f4me, Auvergne", "score": 0.8255363636363636, "label": "Paris
|
||||
63120 Courpi\u00e8re", "id": "63125_B221_03549b", "type": "locality"}, "type":
|
||||
"Feature"}, {"geometry": {"type": "Point", "coordinates": [1.550208, 44.673592]},
|
||||
"properties": {"citycode": "46138", "postcode": "46240", "name": "PARIS (Vaillac)",
|
||||
"city": "C\u0153ur de Causse", "context": "46, Lot, Midi-Pyr\u00e9n\u00e9es",
|
||||
"score": 0.824090909090909, "label": "PARIS (Vaillac) 46240 C\u0153ur de Causse",
|
||||
"id": "46138_XXXX_6ee4ec", "type": "street"}, "type": "Feature"}, {"geometry":
|
||||
{"type": "Point", "coordinates": [-0.526884, 43.762253]}, "properties": {"citycode":
|
||||
"40282", "postcode": "40500", "name": "Paris", "city": "Saint-Sever", "context":
|
||||
"40, Landes, Aquitaine", "score": 0.8236181818181818, "label": "Paris 40500
|
||||
Saint-Sever", "id": "40282_B237_2364e3", "type": "locality"}, "type": "Feature"},
|
||||
{"geometry": {"type": "Point", "coordinates": [0.157613, 47.336685]}, "properties":
|
||||
{"citycode": "37031", "postcode": "37140", "name": "Paris Buton", "city":
|
||||
"Bourgueil", "context": "37, Indre-et-Loire, Centre Val-de-Loire", "score":
|
||||
0.8235454545454545, "label": "Paris Buton 37140 Bourgueil", "id": "37031_X027_0a5e7a",
|
||||
"type": "locality"}, "type": "Feature"}]}'
|
||||
http_version:
|
||||
recorded_at: Fri, 16 Dec 2016 16:43:34 GMT
|
||||
recorded_with: VCR 3.0.3
|
|
@ -1,93 +0,0 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://api-adresse.data.gouv.fr/search?limit=1&q=50%20AV%20DES%20CHAMPS%20ELYSEES%20complement_adresse%2075008%20PARIS%208
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- "*/*"
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
User-Agent:
|
||||
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.3.1p112
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
headers:
|
||||
Server:
|
||||
- nginx/1.11.3
|
||||
Date:
|
||||
- Tue, 03 Jan 2017 13:00:54 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Content-Length:
|
||||
- '660'
|
||||
Connection:
|
||||
- keep-alive
|
||||
Access-Control-Allow-Origin:
|
||||
- "*"
|
||||
Access-Control-Allow-Headers:
|
||||
- X-Requested-With
|
||||
body:
|
||||
encoding: UTF-8
|
||||
string: '{"limit": 1, "attribution": "BAN", "version": "draft", "licence": "ODbL
|
||||
1.0", "query": "50 AV DES CHAMPS ELYSEES complement_adresse 75008 PARIS 8",
|
||||
"type": "FeatureCollection", "features": [{"geometry": {"type": "Point", "coordinates":
|
||||
[2.306888, 48.870374]}, "properties": {"citycode": "75108", "postcode": "75008",
|
||||
"name": "50 Avenue des Champs \u00c9lys\u00e9es", "id": "ADRNIVX_0000000270748251",
|
||||
"type": "housenumber", "context": "75, \u00cele-de-France", "score": 0.596517719568567,
|
||||
"label": "50 Avenue des Champs \u00c9lys\u00e9es 75008 Paris", "city": "Paris",
|
||||
"housenumber": "50", "street": "Avenue des Champs \u00c9lys\u00e9es"}, "type":
|
||||
"Feature"}]}'
|
||||
http_version:
|
||||
recorded_at: Tue, 03 Jan 2017 13:00:54 GMT
|
||||
- request:
|
||||
method: get
|
||||
uri: http://api-adresse.data.gouv.fr/search?limit=1&q=50%20AV%20DES%20CHAMPS%20ELYSEES%20complement_adresse%2075008%20PARIS%208
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- "*/*"
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
User-Agent:
|
||||
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.3.1p112
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
headers:
|
||||
Server:
|
||||
- nginx/1.11.3
|
||||
Date:
|
||||
- Tue, 03 Jan 2017 13:00:55 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Content-Length:
|
||||
- '660'
|
||||
Connection:
|
||||
- keep-alive
|
||||
Access-Control-Allow-Origin:
|
||||
- "*"
|
||||
Access-Control-Allow-Headers:
|
||||
- X-Requested-With
|
||||
body:
|
||||
encoding: UTF-8
|
||||
string: '{"limit": 1, "attribution": "BAN", "version": "draft", "licence": "ODbL
|
||||
1.0", "query": "50 AV DES CHAMPS ELYSEES complement_adresse 75008 PARIS 8",
|
||||
"type": "FeatureCollection", "features": [{"geometry": {"type": "Point", "coordinates":
|
||||
[2.306888, 48.870374]}, "properties": {"citycode": "75108", "postcode": "75008",
|
||||
"name": "50 Avenue des Champs \u00c9lys\u00e9es", "id": "ADRNIVX_0000000270748251",
|
||||
"type": "housenumber", "context": "75, \u00cele-de-France", "score": 0.596517719568567,
|
||||
"label": "50 Avenue des Champs \u00c9lys\u00e9es 75008 Paris", "city": "Paris",
|
||||
"housenumber": "50", "street": "Avenue des Champs \u00c9lys\u00e9es"}, "type":
|
||||
"Feature"}]}'
|
||||
http_version:
|
||||
recorded_at: Tue, 03 Jan 2017 13:00:55 GMT
|
||||
recorded_with: VCR 3.0.3
|
51
spec/fixtures/cassettes/api_geo_departements.yml
vendored
51
spec/fixtures/cassettes/api_geo_departements.yml
vendored
|
@ -1,51 +0,0 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://geo.api.gouv.fr/departements?fields=nom
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
User-Agent:
|
||||
- demarches-simplifiees.fr
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Expect:
|
||||
- ''
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
headers:
|
||||
Server:
|
||||
- nginx/1.10.3 (Ubuntu)
|
||||
Date:
|
||||
- Tue, 23 Oct 2018 13:11:36 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Connection:
|
||||
- keep-alive
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
X-Powered-By:
|
||||
- Express
|
||||
Access-Control-Allow-Origin:
|
||||
- "*"
|
||||
Etag:
|
||||
- W/"cc1-jlb3C7xpXUEaq56Wojrp9rAkoH8"
|
||||
Strict-Transport-Security:
|
||||
- max-age=15552000
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: !binary |-
|
||||
W3sibm9tIjoiQWluIiwiY29kZSI6IjAxIn0seyJub20iOiJBaXNuZSIsImNvZGUiOiIwMiJ9LHsibm9tIjoiQWxsaWVyIiwiY29kZSI6IjAzIn0seyJub20iOiJBbHBlcy1kZS1IYXV0ZS1Qcm92ZW5jZSIsImNvZGUiOiIwNCJ9LHsibm9tIjoiSGF1dGVzLUFscGVzIiwiY29kZSI6IjA1In0seyJub20iOiJBbHBlcy1NYXJpdGltZXMiLCJjb2RlIjoiMDYifSx7Im5vbSI6IkFyZMOoY2hlIiwiY29kZSI6IjA3In0seyJub20iOiJBcmRlbm5lcyIsImNvZGUiOiIwOCJ9LHsibm9tIjoiQXJpw6hnZSIsImNvZGUiOiIwOSJ9LHsibm9tIjoiQXViZSIsImNvZGUiOiIxMCJ9LHsibm9tIjoiQXVkZSIsImNvZGUiOiIxMSJ9LHsibm9tIjoiQXZleXJvbiIsImNvZGUiOiIxMiJ9LHsibm9tIjoiQm91Y2hlcy1kdS1SaMO0bmUiLCJjb2RlIjoiMTMifSx7Im5vbSI6IkNhbHZhZG9zIiwiY29kZSI6IjE0In0seyJub20iOiJDYW50YWwiLCJjb2RlIjoiMTUifSx7Im5vbSI6IkNoYXJlbnRlIiwiY29kZSI6IjE2In0seyJub20iOiJDaGFyZW50ZS1NYXJpdGltZSIsImNvZGUiOiIxNyJ9LHsibm9tIjoiQ2hlciIsImNvZGUiOiIxOCJ9LHsibm9tIjoiQ29ycsOoemUiLCJjb2RlIjoiMTkifSx7Im5vbSI6IkPDtHRlLWQnT3IiLCJjb2RlIjoiMjEifSx7Im5vbSI6IkPDtHRlcy1kJ0FybW9yIiwiY29kZSI6IjIyIn0seyJub20iOiJDcmV1c2UiLCJjb2RlIjoiMjMifSx7Im5vbSI6IkRvcmRvZ25lIiwiY29kZSI6IjI0In0seyJub20iOiJEb3VicyIsImNvZGUiOiIyNSJ9LHsibm9tIjoiRHLDtG1lIiwiY29kZSI6IjI2In0seyJub20iOiJFdXJlIiwiY29kZSI6IjI3In0seyJub20iOiJFdXJlLWV0LUxvaXIiLCJjb2RlIjoiMjgifSx7Im5vbSI6IkZpbmlzdMOocmUiLCJjb2RlIjoiMjkifSx7Im5vbSI6IkNvcnNlLWR1LVN1ZCIsImNvZGUiOiIyQSJ9LHsibm9tIjoiSGF1dGUtQ29yc2UiLCJjb2RlIjoiMkIifSx7Im5vbSI6IkdhcmQiLCJjb2RlIjoiMzAifSx7Im5vbSI6IkhhdXRlLUdhcm9ubmUiLCJjb2RlIjoiMzEifSx7Im5vbSI6IkdlcnMiLCJjb2RlIjoiMzIifSx7Im5vbSI6Ikdpcm9uZGUiLCJjb2RlIjoiMzMifSx7Im5vbSI6IkjDqXJhdWx0IiwiY29kZSI6IjM0In0seyJub20iOiJJbGxlLWV0LVZpbGFpbmUiLCJjb2RlIjoiMzUifSx7Im5vbSI6IkluZHJlIiwiY29kZSI6IjM2In0seyJub20iOiJJbmRyZS1ldC1Mb2lyZSIsImNvZGUiOiIzNyJ9LHsibm9tIjoiSXPDqHJlIiwiY29kZSI6IjM4In0seyJub20iOiJKdXJhIiwiY29kZSI6IjM5In0seyJub20iOiJMYW5kZXMiLCJjb2RlIjoiNDAifSx7Im5vbSI6IkxvaXItZXQtQ2hlciIsImNvZGUiOiI0MSJ9LHsibm9tIjoiTG9pcmUiLCJjb2RlIjoiNDIifSx7Im5vbSI6IkhhdXRlLUxvaXJlIiwiY29kZSI6IjQzIn0seyJub20iOiJMb2lyZS1BdGxhbnRpcXVlIiwiY29kZSI6IjQ0In0seyJub20iOiJMb2lyZXQiLCJjb2RlIjoiNDUifSx7Im5vbSI6IkxvdCIsImNvZGUiOiI0NiJ9LHsibm9tIjoiTG90LWV0LUdhcm9ubmUiLCJjb2RlIjoiNDcifSx7Im5vbSI6IkxvesOocmUiLCJjb2RlIjoiNDgifSx7Im5vbSI6Ik1haW5lLWV0LUxvaXJlIiwiY29kZSI6IjQ5In0seyJub20iOiJNYW5jaGUiLCJjb2RlIjoiNTAifSx7Im5vbSI6Ik1hcm5lIiwiY29kZSI6IjUxIn0seyJub20iOiJIYXV0ZS1NYXJuZSIsImNvZGUiOiI1MiJ9LHsibm9tIjoiTWF5ZW5uZSIsImNvZGUiOiI1MyJ9LHsibm9tIjoiTWV1cnRoZS1ldC1Nb3NlbGxlIiwiY29kZSI6IjU0In0seyJub20iOiJNZXVzZSIsImNvZGUiOiI1NSJ9LHsibm9tIjoiTW9yYmloYW4iLCJjb2RlIjoiNTYifSx7Im5vbSI6Ik1vc2VsbGUiLCJjb2RlIjoiNTcifSx7Im5vbSI6Ik5pw6h2cmUiLCJjb2RlIjoiNTgifSx7Im5vbSI6Ik5vcmQiLCJjb2RlIjoiNTkifSx7Im5vbSI6Ik9pc2UiLCJjb2RlIjoiNjAifSx7Im5vbSI6Ik9ybmUiLCJjb2RlIjoiNjEifSx7Im5vbSI6IlBhcy1kZS1DYWxhaXMiLCJjb2RlIjoiNjIifSx7Im5vbSI6IlB1eS1kZS1Ew7RtZSIsImNvZGUiOiI2MyJ9LHsibm9tIjoiUHlyw6luw6llcy1BdGxhbnRpcXVlcyIsImNvZGUiOiI2NCJ9LHsibm9tIjoiSGF1dGVzLVB5csOpbsOpZXMiLCJjb2RlIjoiNjUifSx7Im5vbSI6IlB5csOpbsOpZXMtT3JpZW50YWxlcyIsImNvZGUiOiI2NiJ9LHsibm9tIjoiQmFzLVJoaW4iLCJjb2RlIjoiNjcifSx7Im5vbSI6IkhhdXQtUmhpbiIsImNvZGUiOiI2OCJ9LHsibm9tIjoiUmjDtG5lIiwiY29kZSI6IjY5In0seyJub20iOiJIYXV0ZS1TYcO0bmUiLCJjb2RlIjoiNzAifSx7Im5vbSI6IlNhw7RuZS1ldC1Mb2lyZSIsImNvZGUiOiI3MSJ9LHsibm9tIjoiU2FydGhlIiwiY29kZSI6IjcyIn0seyJub20iOiJTYXZvaWUiLCJjb2RlIjoiNzMifSx7Im5vbSI6IkhhdXRlLVNhdm9pZSIsImNvZGUiOiI3NCJ9LHsibm9tIjoiUGFyaXMiLCJjb2RlIjoiNzUifSx7Im5vbSI6IlNlaW5lLU1hcml0aW1lIiwiY29kZSI6Ijc2In0seyJub20iOiJTZWluZS1ldC1NYXJuZSIsImNvZGUiOiI3NyJ9LHsibm9tIjoiWXZlbGluZXMiLCJjb2RlIjoiNzgifSx7Im5vbSI6IkRldXgtU8OodnJlcyIsImNvZGUiOiI3OSJ9LHsibm9tIjoiU29tbWUiLCJjb2RlIjoiODAifSx7Im5vbSI6IlRhcm4iLCJjb2RlIjoiODEifSx7Im5vbSI6IlRhcm4tZXQtR2Fyb25uZSIsImNvZGUiOiI4MiJ9LHsibm9tIjoiVmFyIiwiY29kZSI6IjgzIn0seyJub20iOiJWYXVjbHVzZSIsImNvZGUiOiI4NCJ9LHsibm9tIjoiVmVuZMOpZSIsImNvZGUiOiI4NSJ9LHsibm9tIjoiVmllbm5lIiwiY29kZSI6Ijg2In0seyJub20iOiJIYXV0ZS1WaWVubmUiLCJjb2RlIjoiODcifSx7Im5vbSI6IlZvc2dlcyIsImNvZGUiOiI4OCJ9LHsibm9tIjoiWW9ubmUiLCJjb2RlIjoiODkifSx7Im5vbSI6IlRlcnJpdG9pcmUgZGUgQmVsZm9ydCIsImNvZGUiOiI5MCJ9LHsibm9tIjoiRXNzb25uZSIsImNvZGUiOiI5MSJ9LHsibm9tIjoiSGF1dHMtZGUtU2VpbmUiLCJjb2RlIjoiOTIifSx7Im5vbSI6IlNlaW5lLVNhaW50LURlbmlzIiwiY29kZSI6IjkzIn0seyJub20iOiJWYWwtZGUtTWFybmUiLCJjb2RlIjoiOTQifSx7Im5vbSI6IlZhbC1kJ09pc2UiLCJjb2RlIjoiOTUifSx7Im5vbSI6Ikd1YWRlbG91cGUiLCJjb2RlIjoiOTcxIn0seyJub20iOiJNYXJ0aW5pcXVlIiwiY29kZSI6Ijk3MiJ9LHsibm9tIjoiR3V5YW5lIiwiY29kZSI6Ijk3MyJ9LHsibm9tIjoiTGEgUsOpdW5pb24iLCJjb2RlIjoiOTc0In0seyJub20iOiJNYXlvdHRlIiwiY29kZSI6Ijk3NiJ9XQ==
|
||||
http_version:
|
||||
recorded_at: Tue, 23 Oct 2018 13:11:36 GMT
|
||||
recorded_with: VCR 4.0.0
|
51
spec/fixtures/cassettes/api_geo_regions.yml
vendored
51
spec/fixtures/cassettes/api_geo_regions.yml
vendored
|
@ -1,51 +0,0 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://geo.api.gouv.fr/regions?fields=nom
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
User-Agent:
|
||||
- demarches-simplifiees.fr
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Expect:
|
||||
- ''
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
headers:
|
||||
Server:
|
||||
- nginx/1.10.3 (Ubuntu)
|
||||
Date:
|
||||
- Tue, 23 Oct 2018 13:11:36 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Connection:
|
||||
- keep-alive
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
X-Powered-By:
|
||||
- Express
|
||||
Access-Control-Allow-Origin:
|
||||
- "*"
|
||||
Etag:
|
||||
- W/"28d-5OgIzgwL+0K2UaO0foKduqMMBrA"
|
||||
Strict-Transport-Security:
|
||||
- max-age=15552000
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: !binary |-
|
||||
W3sibm9tIjoiR3VhZGVsb3VwZSIsImNvZGUiOiIwMSJ9LHsibm9tIjoiTWFydGluaXF1ZSIsImNvZGUiOiIwMiJ9LHsibm9tIjoiR3V5YW5lIiwiY29kZSI6IjAzIn0seyJub20iOiJMYSBSw6l1bmlvbiIsImNvZGUiOiIwNCJ9LHsibm9tIjoiTWF5b3R0ZSIsImNvZGUiOiIwNiJ9LHsibm9tIjoiw45sZS1kZS1GcmFuY2UiLCJjb2RlIjoiMTEifSx7Im5vbSI6IkNlbnRyZS1WYWwgZGUgTG9pcmUiLCJjb2RlIjoiMjQifSx7Im5vbSI6IkJvdXJnb2duZS1GcmFuY2hlLUNvbXTDqSIsImNvZGUiOiIyNyJ9LHsibm9tIjoiTm9ybWFuZGllIiwiY29kZSI6IjI4In0seyJub20iOiJIYXV0cy1kZS1GcmFuY2UiLCJjb2RlIjoiMzIifSx7Im5vbSI6IkdyYW5kIEVzdCIsImNvZGUiOiI0NCJ9LHsibm9tIjoiUGF5cyBkZSBsYSBMb2lyZSIsImNvZGUiOiI1MiJ9LHsibm9tIjoiQnJldGFnbmUiLCJjb2RlIjoiNTMifSx7Im5vbSI6Ik5vdXZlbGxlLUFxdWl0YWluZSIsImNvZGUiOiI3NSJ9LHsibm9tIjoiT2NjaXRhbmllIiwiY29kZSI6Ijc2In0seyJub20iOiJBdXZlcmduZS1SaMO0bmUtQWxwZXMiLCJjb2RlIjoiODQifSx7Im5vbSI6IlByb3ZlbmNlLUFscGVzLUPDtHRlIGQnQXp1ciIsImNvZGUiOiI5MyJ9LHsibm9tIjoiQ29yc2UiLCJjb2RlIjoiOTQifV0=
|
||||
http_version:
|
||||
recorded_at: Tue, 23 Oct 2018 13:11:36 GMT
|
||||
recorded_with: VCR 4.0.0
|
51
spec/fixtures/cassettes/api_geo_search_rpg.yml
vendored
51
spec/fixtures/cassettes/api_geo_search_rpg.yml
vendored
File diff suppressed because one or more lines are too long
|
@ -1,44 +0,0 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe ApiAdresse::AddressAdapter do
|
||||
describe '#get_suggestions' do
|
||||
let(:request) { 'Paris' }
|
||||
let(:response) { File.open('spec/fixtures/files/api_adresse/search_results.json') }
|
||||
let(:status) { 200 }
|
||||
|
||||
subject { described_class.new(request).get_suggestions }
|
||||
|
||||
before do
|
||||
stub_request(:get, "https://api-adresse.data.gouv.fr/search?&q=#{request}&limit=5")
|
||||
.to_return(status: status, body: response, headers: {})
|
||||
end
|
||||
|
||||
context 'when address return a list of address' do
|
||||
it { expect(subject.size).to eq 5 }
|
||||
it { is_expected.to be_an_instance_of Array }
|
||||
end
|
||||
|
||||
context 'when address return an empty list' do
|
||||
let(:response) { File.open('spec/fixtures/files/api_adresse/search_no_results.json') }
|
||||
|
||||
it { expect(subject.size).to eq 0 }
|
||||
it { is_expected.to be_an_instance_of Array }
|
||||
end
|
||||
|
||||
context 'when BAN is unavailable' do
|
||||
let(:status) { 503 }
|
||||
let(:response) { '' }
|
||||
|
||||
it { expect(subject.size).to eq 0 }
|
||||
it { is_expected.to be_an_instance_of Array }
|
||||
end
|
||||
|
||||
context 'when request is empty' do
|
||||
let(:response) { 'Missing query' }
|
||||
let(:request) { '' }
|
||||
|
||||
it { expect(subject.size).to eq 0 }
|
||||
it { is_expected.to be_an_instance_of Array }
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,31 +0,0 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe ApiAdresse::PointAdapter do
|
||||
let(:address) { '50 av des champs elysees' }
|
||||
|
||||
describe '.geocode', vcr: { cassette_name: 'api_adresse_octo' } do
|
||||
it 'return a point' do
|
||||
expect(described_class.new(address).geocode.class).to eq(RGeo::Cartesian::PointImpl)
|
||||
end
|
||||
|
||||
context 'when RestClient::Exception' do
|
||||
before do
|
||||
allow(ApiAdresse::API).to receive(:call).and_raise(RestClient::Exception)
|
||||
end
|
||||
|
||||
it 'return nil' do
|
||||
expect(described_class.new(address).geocode).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
context 'when JSON::ParserError' do
|
||||
before do
|
||||
allow(JSON).to receive(:parse).and_raise(JSON::ParserError)
|
||||
end
|
||||
|
||||
it 'return nil' do
|
||||
expect(described_class.new(address).geocode).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,75 +0,0 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe ApiGeo::API do
|
||||
describe '.regions', vcr: { cassette_name: 'api_geo_regions' } do
|
||||
subject { described_class.regions }
|
||||
|
||||
it { expect(subject.size).to eq 18 }
|
||||
end
|
||||
|
||||
describe '.departements', vcr: { cassette_name: 'api_geo_departements' } do
|
||||
subject { described_class.departements }
|
||||
|
||||
it { expect(subject.size).to eq 101 }
|
||||
end
|
||||
|
||||
describe '.pays' do
|
||||
subject { described_class.pays }
|
||||
let(:pays) {
|
||||
JSON.parse(File.open('app/lib/api_geo/pays.json').read, symbolize_names: true)
|
||||
}
|
||||
|
||||
it { is_expected.to eq pays }
|
||||
end
|
||||
|
||||
describe '.search_rpg', vcr: { cassette_name: 'api_geo_search_rpg' } do
|
||||
let(:coordinates) do
|
||||
[
|
||||
[
|
||||
2.3945903778076176,
|
||||
46.53312237252731
|
||||
],
|
||||
[
|
||||
2.394933700561524,
|
||||
46.532590956418076
|
||||
],
|
||||
[
|
||||
2.3948478698730473,
|
||||
46.53170525134736
|
||||
],
|
||||
[
|
||||
2.393732070922852,
|
||||
46.530760483351195
|
||||
],
|
||||
[
|
||||
2.3909854888916016,
|
||||
46.5309376286023
|
||||
],
|
||||
[
|
||||
2.391414642333985,
|
||||
46.531232869403546
|
||||
],
|
||||
[
|
||||
2.3913288116455083,
|
||||
46.53253190986272
|
||||
],
|
||||
[
|
||||
2.39278793334961,
|
||||
46.53329951007484
|
||||
],
|
||||
[
|
||||
2.3945903778076176,
|
||||
46.53312237252731
|
||||
]
|
||||
]
|
||||
end
|
||||
|
||||
let(:geo_json) {
|
||||
GeojsonService.to_json_polygon_for_rpg(coordinates)
|
||||
}
|
||||
|
||||
subject { described_class.search_rpg(geo_json) }
|
||||
|
||||
it { expect(subject[:features].size).to eq 3 }
|
||||
end
|
||||
end
|
|
@ -1,62 +0,0 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe ApiGeo::RPGAdapter do
|
||||
subject { described_class.new(coordinates).results }
|
||||
|
||||
let(:coordinates) do
|
||||
[
|
||||
[
|
||||
2.3945903778076176,
|
||||
46.53312237252731
|
||||
],
|
||||
[
|
||||
2.394933700561524,
|
||||
46.532590956418076
|
||||
],
|
||||
[
|
||||
2.3948478698730473,
|
||||
46.53170525134736
|
||||
],
|
||||
[
|
||||
2.393732070922852,
|
||||
46.530760483351195
|
||||
],
|
||||
[
|
||||
2.3909854888916016,
|
||||
46.5309376286023
|
||||
],
|
||||
[
|
||||
2.391414642333985,
|
||||
46.531232869403546
|
||||
],
|
||||
[
|
||||
2.3913288116455083,
|
||||
46.53253190986272
|
||||
],
|
||||
[
|
||||
2.39278793334961,
|
||||
46.53329951007484
|
||||
],
|
||||
[
|
||||
2.3945903778076176,
|
||||
46.53312237252731
|
||||
]
|
||||
]
|
||||
end
|
||||
|
||||
context 'coordinates are filled', vcr: { cassette_name: 'api_geo_search_rpg' } do
|
||||
describe 'Attribut filter' do
|
||||
it { expect(subject.size).to eq(3) }
|
||||
it do
|
||||
expect(subject.first.keys).to eq([
|
||||
:culture,
|
||||
:code_culture,
|
||||
:surface,
|
||||
:bio,
|
||||
:geometry,
|
||||
:geo_reference_id
|
||||
])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -32,12 +32,6 @@ shared_examples 'champ_spec' do
|
|||
end
|
||||
end
|
||||
|
||||
describe '.departement', vcr: { cassette_name: 'api_geo_departements' } do
|
||||
subject { Champs::DepartementChamp.departements }
|
||||
|
||||
it { expect(subject).to include '99 - Étranger' }
|
||||
end
|
||||
|
||||
context "when type_champ=date" do
|
||||
let(:type_de_champ) { create(:type_de_champ_date) }
|
||||
let(:champ) { type_de_champ.champ.create }
|
||||
|
|
12
yarn.lock
12
yarn.lock
|
@ -1521,13 +1521,6 @@ atob@^2.1.1:
|
|||
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
|
||||
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
|
||||
|
||||
autocomplete.js@^0.37.0:
|
||||
version "0.37.0"
|
||||
resolved "https://registry.yarnpkg.com/autocomplete.js/-/autocomplete.js-0.37.0.tgz#bcfbfd7bcabe90e90fad4c2b1aaa931379a10c38"
|
||||
integrity sha512-MxYfNb89sl7IRhNdEJv6z8dSfA7lVeU7Dk6m/+/ih0/tPLsbxIM7uPVsnWEUh4j7dFqJktlM7hCeU7jmx6VC8A==
|
||||
dependencies:
|
||||
immediate "^3.2.3"
|
||||
|
||||
autoprefixer@^9.4.9:
|
||||
version "9.5.1"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.5.1.tgz#243b1267b67e7e947f28919d786b50d3bb0fb357"
|
||||
|
@ -4362,11 +4355,6 @@ ignore@^4.0.6:
|
|||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
|
||||
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
|
||||
|
||||
immediate@^3.2.3:
|
||||
version "3.2.3"
|
||||
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c"
|
||||
integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=
|
||||
|
||||
import-cwd@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
|
||||
|
|
Loading…
Reference in a new issue