nav2/stubs/api/index.js

53 lines
1.5 KiB
JavaScript
Raw Normal View History

2024-10-22 21:29:29 +03:00
const router = require('express').Router();
2025-01-14 18:28:30 +03:00
const router2 = require('express').Router();
const path = require('node:path')
const fs = require('node:fs')
2024-10-22 21:29:29 +03:00
2025-01-14 18:28:30 +03:00
let stubs = {
users: 'success'
}
2024-10-22 21:29:29 +03:00
2025-01-14 18:28:30 +03:00
const timer = (time) => (req, res, next) => {
setTimeout(next, time)
}
2024-10-22 21:29:29 +03:00
2025-01-14 18:28:30 +03:00
timer.slow = timer(5000)
timer.fast = timer(300)
// router.use(timer.fast)
router.post('/user-rate', (req, res) => {
res.status(500).send({ ok: false })
})
router.use('/admin', router2)
router.get('/users',
(req, res, next) => {
res.status(stubs.users.includes('error') ? 400 : 200).send(require(`../json/users/${stubs.users}.json`))
})
2025-01-24 16:42:55 +03:00
router.post('/user/rate/:userId', (req, res) => {
stubs.users = 'success-incremented'
res.send({ ok: true })
})
2025-01-14 18:28:30 +03:00
router2.get('/', (req, res) => {
res.send(`
<h2>Users</h2>
<ul>
<li><button onclick="fetch('/api/admin/users/success')" style="background-color: ${stubs.users === 'success' ? 'green' : '#ccc'}">success</button></li>
2025-01-24 16:42:55 +03:00
<li><button onclick="fetch('/api/admin/users/success-incremented')" style="background-color: ${stubs.users === 'success-incremented' ? 'green' : '#ccc'}">success-incremented</button></li>
2025-01-14 18:28:30 +03:00
<li><button onclick="fetch('/api/admin/users/error')" style="background-color: ${stubs.users === 'error' ? 'green' : '#ccc'}">error</button></li>
</ul>
`)
})
router2.get('/:stubName/:value', (req, res) => {
const { stubName, value } = req.params
stubs[stubName] = value
})
2024-10-22 21:29:29 +03:00
module.exports = router;