chore: code formatting
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
//Imports
|
||||
import faker from "@faker-js/faker"
|
||||
import fs from "fs/promises"
|
||||
import axios from "axios"
|
||||
import fs from "fs/promises"
|
||||
import paths from "path"
|
||||
import rss from "rss-parser"
|
||||
import urls from "url"
|
||||
@@ -10,21 +10,21 @@ import urls from "url"
|
||||
let mocked = false
|
||||
|
||||
//Mocking
|
||||
export default async function({ graphql, rest }) {
|
||||
export default async function({graphql, rest}) {
|
||||
//Check if already mocked
|
||||
if (mocked)
|
||||
return { graphql, rest }
|
||||
return {graphql, rest}
|
||||
mocked = true
|
||||
console.debug("metrics/compute/mocks > mocking")
|
||||
|
||||
//Load mocks
|
||||
const __mocks = paths.join(paths.dirname(urls.fileURLToPath(import.meta.url)))
|
||||
const mock = async ({ directory, mocks }) => {
|
||||
const mock = async ({directory, mocks}) => {
|
||||
for (const entry of await fs.readdir(directory)) {
|
||||
if ((await fs.lstat(paths.join(directory, entry))).isDirectory()) {
|
||||
if (!mocks[entry])
|
||||
mocks[entry] = {}
|
||||
await mock({ directory: paths.join(directory, entry), mocks: mocks[entry] })
|
||||
await mock({directory: paths.join(directory, entry), mocks: mocks[entry]})
|
||||
}
|
||||
else {
|
||||
mocks[entry.replace(/[.]mjs$/, "")] = (await import(urls.pathToFileURL(paths.join(directory, entry)).href)).default
|
||||
@@ -32,7 +32,7 @@ export default async function({ graphql, rest }) {
|
||||
}
|
||||
return mocks
|
||||
}
|
||||
const mocks = await mock({ directory: paths.join(__mocks, "api"), mocks: {} })
|
||||
const mocks = await mock({directory: paths.join(__mocks, "api"), mocks: {}})
|
||||
|
||||
//GraphQL API mocking
|
||||
{
|
||||
@@ -49,7 +49,7 @@ export default async function({ graphql, rest }) {
|
||||
//Search for mocked query
|
||||
for (const mocked of Object.keys(mocks.github.graphql)) {
|
||||
if (new RegExp(`^query ${mocked.replace(/([.]\w)/g, (_, g) => g.toLocaleUpperCase().substring(1)).replace(/^(\w)/g, (_, g) => g.toLocaleUpperCase())} `).test(query))
|
||||
return mocks.github.graphql[mocked]({ faker, query, login })
|
||||
return mocks.github.graphql[mocked]({faker, query, login})
|
||||
}
|
||||
|
||||
//Unmocked call
|
||||
@@ -64,26 +64,26 @@ export default async function({ graphql, rest }) {
|
||||
console.debug("metrics/compute/mocks > mocking rest api")
|
||||
const unmocked = {}
|
||||
//Mocked
|
||||
const mocker = ({ path = "rest", mocks, mocked }) => {
|
||||
const mocker = ({path = "rest", mocks, mocked}) => {
|
||||
for (const [key, value] of Object.entries(mocks)) {
|
||||
console.debug(`metrics/compute/mocks > mocking rest api > mocking ${path}.${key}`)
|
||||
if (typeof value === "function") {
|
||||
unmocked[path] = value
|
||||
mocked[key] = new Proxy(unmocked[path], { apply: value.bind(null, { faker }) })
|
||||
mocked[key] = new Proxy(unmocked[path], {apply: value.bind(null, {faker})})
|
||||
}
|
||||
else {
|
||||
mocker({ path: `${path}.${key}`, mocks: mocks[key], mocked: mocked[key] })
|
||||
mocker({path: `${path}.${key}`, mocks: mocks[key], mocked: mocked[key]})
|
||||
}
|
||||
}
|
||||
}
|
||||
mocker({ mocks: mocks.github.rest, mocked: rest })
|
||||
mocker({mocks: mocks.github.rest, mocked: rest})
|
||||
}
|
||||
|
||||
//Axios mocking
|
||||
{
|
||||
//Unmocked
|
||||
console.debug("metrics/compute/mocks > mocking axios")
|
||||
const unmocked = { get: axios.get, post: axios.post }
|
||||
const unmocked = {get: axios.get, post: axios.post}
|
||||
|
||||
//Mocked post requests
|
||||
axios.post = new Proxy(unmocked.post, {
|
||||
@@ -93,7 +93,7 @@ export default async function({ graphql, rest }) {
|
||||
|
||||
//Search for mocked request
|
||||
for (const service of Object.keys(mocks.axios.post)) {
|
||||
const mocked = mocks.axios.post[service]({ faker, url, body })
|
||||
const mocked = mocks.axios.post[service]({faker, url, body})
|
||||
if (mocked)
|
||||
return mocked
|
||||
}
|
||||
@@ -111,7 +111,7 @@ export default async function({ graphql, rest }) {
|
||||
|
||||
//Search for mocked request
|
||||
for (const service of Object.keys(mocks.axios.get)) {
|
||||
const mocked = mocks.axios.get[service]({ faker, url, options })
|
||||
const mocked = mocks.axios.get[service]({faker, url, options})
|
||||
if (mocked)
|
||||
return mocked
|
||||
}
|
||||
@@ -146,5 +146,5 @@ export default async function({ graphql, rest }) {
|
||||
}
|
||||
|
||||
//Return mocked elements
|
||||
return { graphql, rest }
|
||||
return {graphql, rest}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user