datahub/mocks/index.js

98 lines
3.2 KiB
JavaScript

const nock = require('nock')
const gdp = {
"name": "gdp",
"title": "Country, Regional and World GDP (Gross Domestic Product)",
"notes": "Country, regional and world GDP in current US Dollars ($). Regional means collections of countries e.g. Europe & Central Asia. Data is sourced from the World Bank and turned into a standard normalized CSV.",
"resources": [
{
"name": "gdp",
"title": "GDP data",
"format": "csv",
"created": "2019-03-07T12:00:36.273495",
"last_modified": "2020-05-07T12:00:36.273495"
}
],
"organization": {
"title": "World Bank",
"name": "world-bank",
"description": "The World Bank is an international financial institution that provides loans and grants to the governments of poorer countries for the purpose of pursuing capital projects.",
"created": "2019-03-07T11:51:13.758844",
"image_url": "https://github.com/datahq/frontend/raw/master/public/img/avatars/world-bank.jpg"
},
"metadata_created": "2019-03-07T11:56:19.696257",
"metadata_modified": "2019-03-07T12:03:58.817280"
}
const population = {
"name": "population",
"title": "World population data",
"notes": "Population figures for countries, regions (e.g. Asia) and the world. Data comes originally from World Bank and has been converted into standard CSV.",
"resources": [
{
"name": "population",
"title": "Population data",
"format": "csv",
"created": "2019-03-07T12:00:36.273495",
"last_modified": "2020-05-07T12:00:36.273495"
}
],
"organization": {
"title": "World Bank",
"name": "world-bank",
"description": "The World Bank is an international financial institution that provides loans and grants to the governments of poorer countries for the purpose of pursuing capital projects.",
"created": "2019-03-07T11:51:13.758844",
"image_url": "https://github.com/datahq/frontend/raw/master/public/img/avatars/world-bank.jpg"
}
}
module.exports.initMocks = function() {
// Uncomment this line if you want to record API calls
// nock.recorder.rec()
// "package_search" mocks
nock('http://mock.ckan/api/3/action', {'encodedQueryParams':true})
.persist()
// 1. Call without query.
.get('/package_search?facet.field=organization&facet.field=groups&facet.field=tags&facet.field=res_format&facet.field=license_id&facet.limit=5')
.reply(200, {
"success": true,
"result": {
"count": 2,
"sort": "score desc, metadata_modified desc",
"facets": {},
"results": [
gdp,
population
],
"search_facets": {}
}
})
// 2. Call with `q=gdp` query.
.get('/package_search?q=gdp&facet.field=organization&facet.field=groups&facet.field=tags&facet.field=res_format&facet.field=license_id&facet.limit=5')
.reply(200, {
"success": true,
"result": {
"count": 1,
"sort": "score desc, metadata_modified desc",
"facets": {},
"results": [
gdp
],
"search_facets": {}
}
})
// "package_show" mocks
nock('http://mock.ckan/api/3/action', {'encodedQueryParams':true})
.persist()
.get('/package_show?id=gdp')
.reply(200, {
"success": true,
"result": gdp
})
// "organization_show" mocks
}