mockaton 6.4.4 → 6.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,5 @@
1
- # Mockaton
1
+ <img src="src/mockaton-logo.svg" alt="Mockaton Logo" width="210" style="margin-top: 30px"/>
2
+
2
3
  _Mockaton_ is a mock server for developing and testing frontends.
3
4
 
4
5
  It scans a given directory for files following a specific
@@ -327,10 +328,14 @@ fetch(addr + '/mockaton/fallback', {
327
328
 
328
329
  ### Reset
329
330
  Re-initialize the collection. So if you added or removed mocks they
330
- will be considered. The selected mocks, cookies, and delays are
331
- back to default. But the `Config.proxyFalllback` is not affected.
331
+ will be considered. The selected mocks, cookies, and delays go
332
+ back to default, but `Config.proxyFalllback` is not affected.
332
333
  ```js
333
334
  fetch(addr + '/mockaton/reset', {
334
335
  method: 'PATCH'
335
336
  })
336
337
  ```
338
+
339
+ ## TODO
340
+ - Dashboard. List `staticDir` and indicate if it’s overriding some mock.
341
+ - Refactor Tests
package/Tests.js CHANGED
@@ -165,7 +165,7 @@ async function runTests() {
165
165
  'api/alternative(comment-2).GET.200.json',
166
166
  JSON.stringify({ comment: 2 }))
167
167
 
168
- await test422WhenUpdatingNonExistingMockAlternative()
168
+ await testBadRequestWhenUpdatingNonExistingMockAlternative()
169
169
 
170
170
  await testAutogenerates500(
171
171
  '/api/alternative',
@@ -288,13 +288,15 @@ async function testItUpdatesDelayAndFile(url, file, expectedBody) {
288
288
  })
289
289
  }
290
290
 
291
- async function test422WhenUpdatingNonExistingMockAlternative() {
291
+ async function testBadRequestWhenUpdatingNonExistingMockAlternative() {
292
292
  await it('There are mocks for /api/the-route but not this one', async () => {
293
+ const missingFile = 'api/the-route(non-existing-variant).GET.200.json'
293
294
  const res = await request(API.edit, {
294
295
  method: 'PATCH',
295
- body: JSON.stringify({ [DF.file]: 'api/the-route(non-existing-variant).GET.200.json' })
296
+ body: JSON.stringify({ [DF.file]: missingFile })
296
297
  })
297
- equal(res.status, 422)
298
+ equal(res.status, 400)
299
+ equal(await res.text(), `Missing Mock: ${missingFile}`)
298
300
  })
299
301
  }
300
302
 
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "mockaton",
3
3
  "description": "A deterministic server-side for developing and testing frontend clients",
4
4
  "type": "module",
5
- "version": "6.4.4",
5
+ "version": "6.4.6",
6
6
  "main": "index.js",
7
7
  "types": "index.d.ts",
8
8
  "license": "MIT",
package/src/Api.js CHANGED
@@ -9,7 +9,7 @@ import { Config } from './Config.js'
9
9
  import { DF, API } from './ApiConstants.js'
10
10
  import { parseJSON } from './utils/http-request.js'
11
11
  import * as mockBrokersCollection from './mockBrokersCollection.js'
12
- import { sendOK, sendBadRequest, sendJSON, sendFile, sendUnprocessableContent } from './utils/http-response.js'
12
+ import { sendOK, sendBadRequest, sendJSON, sendFile } from './utils/http-response.js'
13
13
 
14
14
 
15
15
  export const apiGetRequests = new Map([
@@ -18,6 +18,7 @@ export const apiGetRequests = new Map([
18
18
  ['/Dashboard.js', serveDashboardAsset],
19
19
  ['/Dashboard.css', serveDashboardAsset],
20
20
  ['/ApiConstants.js', serveDashboardAsset],
21
+ ['/mockaton-logo.svg', serveDashboardAsset],
21
22
  [API.mocks, listMockBrokers],
22
23
  [API.cookies, listCookies],
23
24
  [API.comments, listComments]
@@ -59,10 +60,9 @@ async function updateBroker(req, response) {
59
60
  const body = await parseJSON(req)
60
61
  const file = body[DF.file]
61
62
  const broker = mockBrokersCollection.getBrokerByFilename(file)
62
- if (!broker || !broker.mockExists(file)) {
63
- sendUnprocessableContent(response, `Missing Mock: ${file}`)
64
- return
65
- }
63
+ if (!broker || !broker.mockExists(file))
64
+ throw `Missing Mock: ${file}`
65
+
66
66
  if (DF.delayed in body)
67
67
  broker.updateDelay(body[DF.delayed])
68
68
  broker.updateFile(file)
package/src/Dashboard.css CHANGED
@@ -63,10 +63,8 @@ menu {
63
63
  margin-bottom: 12px;
64
64
  gap: 14px;
65
65
 
66
- h1 {
67
- margin: 0;
68
- margin-right: 12px;
69
- font-size: 26px;
66
+ img {
67
+ margin-right: 16px;
70
68
  }
71
69
 
72
70
  label {
@@ -107,7 +105,7 @@ menu {
107
105
  top: 0;
108
106
  width: 50%;
109
107
  margin-left: 16px;
110
-
108
+
111
109
  h2 {
112
110
  padding-top: 20px;
113
111
  }
package/src/Dashboard.js CHANGED
@@ -54,7 +54,7 @@ function DevPanel(brokersByMethod, cookies, comments) {
54
54
  return (
55
55
  r('div', null,
56
56
  r('menu', null,
57
- r('h1', null, Strings.title),
57
+ r('img', { src: 'mockaton-logo.svg', width: 160 }),
58
58
  r(CookieSelector, { list: cookies }),
59
59
  r(BulkSelector, { comments }),
60
60
  r(ResetButton)),
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg version="1.1" viewBox="0 0 570 100" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="m77 0.27c2.7 0 6 1.3 9.1 2.6 2.9 1.1 4.2 3.3 4.2 6.5v84c0 3.8-2.4 5.8-7.2 5.8s-7.2-2-7.2-5.8v-63l-3.5-0.36-20 64c-0.92 2.9-3.2 4.2-6.6 4.1-1.5-0.079-2.9-0.47-4-1.2-1.2-0.71-2-1.8-2.3-3.2l-8.8-29-5.3-17c-1.8-5.8-3.7-13-5.8-20l-3.5 0.48v63c0 3.8-2.4 5.8-7.2 5.8s-7.2-2-7.2-5.8v-84c0-3.1 1.4-5.2 4.2-6.5 3.1-1.3 5.9-1.8 8.7-1.7 1.3 0 2.5 0.16 3.7 0.48 1.3 0.33 2.5 0.82 3.6 1.5 1.1 0.57 2.2 1.3 3.1 2.3 0.92 0.92 1.6 2 2.1 3.2l19 65c1.4-4.8 2.9-9.9 4.4-16 1.6-5.9 3.2-11 4.7-17 1.6-5.9 3.2-11 4.7-17 1.7-5.7 3.2-11 4.5-16 0.48-1.1 1.2-2.2 2.1-3.1 0.89-0.89 1.9-1.7 3.1-2.2 1.1-0.65 2.3-1.2 3.5-1.5 1.3-0.33 2.6-0.48 3.7-0.48m35 30h-0.12c2.1-1.4 4.2-2.6 6.5-3.5 2.3-0.89 4.5-1.4 6.6-1.4h20c2.1 0 4.2 0.46 6.5 1.4 2.3 0.92 4.5 2.1 6.6 3.5h-0.12c2.1 1.5 3.7 3.5 4.8 6.1 1.1 2.5 1.7 5.3 1.7 8.6v35c0 6.6-2.2 12-6.6 15-4.3 3.1-8.6 4.6-13 4.6h-20c-2.1 0-4.2-0.36-6.5-1.1-2.3-0.72-4.4-1.9-6.5-3.5-4.4-3.1-6.6-8-6.6-15v-35c0-3.3 0.56-6.1 1.7-8.6 1.1-2.5 2.8-4.5 4.8-6.1m31 57c3.1 0 5.1-0.86 6.3-2.6 1.3-1.7 2-3.5 2-5.5v-35c0-2.1-0.66-3.8-2-5.5-1.3-1.7-3.4-2.6-6.3-2.6h-15c-3.1 0-5.2 0.86-6.5 2.6-1.3 1.7-1.9 3.5-1.9 5.5v35c0 2 0.62 3.8 1.9 5.5 1.3 1.7 3.5 2.6 6.5 2.6zm96-7.9c0 6.6-2.2 12-6.6 15-4.3 3.1-8.6 4.6-13 4.6h-21c-4.3 0-8.6-1.6-13-4.6-2-1.7-3.5-3.6-4.5-6.1s-1.6-5.4-1.6-8.7v-35c0-6.6 2.1-12 6.1-15 2.1-1.5 4.1-2.6 6.2-3.5 2.2-0.92 4.2-1.4 6.3-1.4h21c2 0 4.1 0.39 6.5 1.2 2.4 0.72 4.5 1.8 6.6 3.1 2 1.4 3.5 3.3 4.6 5.7 1.3 2.5 1.9 5.3 1.9 8.7v6.1c0 3.8-2.3 5.8-6.7 5.8-4.4 0-6.7-2-6.7-5.8v-5.2c0-2.1-0.66-3.8-2-5.5-1.3-1.7-3.4-2.6-6.3-2.6h-15c-3.1 0-5.2 0.86-6.5 2.6-1.3 1.7-1.9 3.5-1.9 5.5v35c0 2 0.62 3.8 1.9 5.5 1.3 1.7 3.5 2.6 6.5 2.6h15c3.1 0 5.1-0.86 6.3-2.6 1.3-1.7 2-3.5 2-5.5v-5.6c0-3.8 2.3-5.7 6.7-5.7 4.4 0 6.7 1.9 6.7 5.7zm57-53v0.12c1.5-1.7 3-2.6 4.4-2.6 0.79 0 1.6 0.21 2.3 0.61 0.79 0.33 1.7 0.82 2.6 1.5h-0.12c2 1.7 3 3.3 3 4.8 0 0.57-0.12 1.2-0.36 2-0.25 0.65-0.64 1.2-1.2 1.7l-38 44v16c0 3.8-2.3 5.7-6.7 5.7-4.4 0-6.7-1.9-6.7-5.7v-87c0-3.8 2.3-5.8 6.7-5.8 4.4 0 6.7 2 6.7 5.8v51c2.1-2.5 4.2-5 6.7-7.8 2.5-2.9 4.9-5.7 7.4-8.6 2.5-3 4.9-5.8 7.4-8.6 2.5-2.9 4.7-5.4 6.8-7.9m12 64c0.57 1.1 0.86 2.2 0.86 3.3 0 2.1-1.2 3.6-3.6 4.7-1.7 0.99-3.2 1.5-4.4 1.5-0.92 0-1.8-0.33-2.6-0.98-0.79-0.57-1.5-1.3-2-2.2l-12-24c-0.72-1.3-1.1-2.5-1.1-3.6 0-2.1 1.1-3.7 3.2-5.1 0.57-0.4 1.1-0.77 1.7-1.1 0.65-0.33 1.4-0.56 2.1-0.73 0.92-0.17 1.8-0.0033 2.6 0.48 0.79 0.48 1.5 1.2 2.1 2zm30 8.2c-2.5 0-4.9-0.33-7.2-0.98-2.3-0.72-4.5-1.8-6.6-3.1v0.12c-4-2.5-6-7.1-6-14v-6c0-3.4 0.56-6.2 1.7-8.7 1.3-2.5 3-4.5 5-6h-0.12c2.1-1.4 4.2-2.4 6.5-3.1 2.3-0.72 4.5-1.1 6.6-1.1h27v-11c0-2.1-0.66-3.8-2-5.5-1.3-1.7-3.4-2.6-6.3-2.6h-14c-3.1 0-5.2 0.76-6.5 2.3-1.1 1.5-1.7 3.2-1.7 5.2v0.98c0 4.2-2.3 6.3-6.8 6.3-4.5 0-6.8-2.1-6.8-6.3v-1.1c0-3.4 0.56-6.1 1.7-8.4 1.3-2.3 2.9-4.2 4.8-5.7h-0.12c2.1-1.4 4.3-2.6 6.6-3.5 2.4-0.92 4.6-1.4 6.7-1.4h19c2.1 0 4.2 0.46 6.5 1.4 2.4 0.92 4.5 2.1 6.6 3.5h-0.12c2.1 1.5 3.7 3.5 4.8 6.1 1.1 2.5 1.7 5.3 1.7 8.6v49c0 3.8-2.3 5.8-6.7 5.8-0.92 0-1.8-0.04-2.6-0.12-0.72-0.079-1.4-0.29-2.1-0.61-0.57-0.4-1.1-0.94-1.5-1.6-0.33-0.72-0.48-1.7-0.48-2.8l-0.12-27h-25c-1.8 0-3.2 0.21-4.1 0.61s-1.8 1.1-2.3 2c-0.65 1.4-1.2 2.5-1.5 3.3-0.25 0.72-0.36 1.6-0.36 2.6v4.7c0 2.1 0.62 3.7 1.9 4.8 1.3 1.1 3.5 1.6 6.6 1.6h14c3.1 0 4.5 1.9 4.5 5.7 0 1.7-0.36 3.1-1.1 4.1-0.72 1.1-1.9 1.6-3.5 1.6zm72-62v44c0 2.1 0.46 3.7 1.4 4.8 0.92 1.1 2.9 1.7 5.7 1.7h3.2c3.2 0 4.6 1.9 4.5 5.6 0 3.8-1.5 5.7-4.5 5.7h-4c-2.7 0-5-0.33-7.3-0.98-2.3-0.72-4.5-1.8-6.6-3.1v0.12c-4-2.7-6-7.2-6-14v-44h-4.7c-3 0-4.5-1.9-4.6-5.7 0-3.8 1.6-5.7 4.6-5.7h4.7v-13c0-3.8 2.3-5.8 6.9-5.8 4.4 0 6.7 2 6.7 5.8v13h9.9c3.2 0 4.6 1.9 4.5 5.7 0 3.8-1.5 5.7-4.5 5.7zm32-7h-0.12c2.1-1.4 4.2-2.6 6.5-3.5 2.3-0.89 4.5-1.4 6.6-1.4h20c2.1 0 4.2 0.46 6.5 1.4 2.3 0.92 4.5 2.1 6.6 3.5h-0.12c2.1 1.5 3.7 3.5 4.8 6.1 1.1 2.5 1.7 5.3 1.7 8.6v35c0 6.6-2.2 12-6.6 15-4.3 3.1-8.6 4.6-13 4.6h-20c-2.1 0-4.2-0.36-6.5-1.1-2.3-0.72-4.4-1.9-6.5-3.5-4.4-3.1-6.6-8-6.6-15v-35c0-3.3 0.56-6.1 1.7-8.6 1.1-2.5 2.8-4.5 4.8-6.1m31 57c3.1 0 5.1-0.86 6.3-2.6 1.3-1.7 2-3.5 2-5.5v-35c0-2.1-0.66-3.8-2-5.5-1.3-1.7-3.4-2.6-6.3-2.6h-15c-3.1 0-5.2 0.86-6.5 2.6-1.3 1.7-1.9 3.5-1.9 5.5v35c0 2 0.62 3.8 1.9 5.5 1.3 1.7 3.5 2.6 6.5 2.6zm80-48 0.12 0.12c-1.1-2-3.3-3-6.5-3h-15c-3.4 0-5.5 0.99-6.6 3-1.1 1.7-1.7 3.7-1.7 6l-0.32 48c0 3.8-2.3 5.8-6.7 5.8-4.4 0-6.7-2-6.7-5.8v-49c0-3.4 0.52-6.2 1.6-8.7 1.1-2.5 2.8-4.4 5-6 4.3-3.1 8.6-4.6 13-4.6h20c4.1 0 8.4 1.6 13 4.6 4.4 3.1 6.6 8 6.6 15v49c0 3.8-2.3 5.8-6.7 5.8s-6.7-2-6.7-5.8v-48c0-2.1-0.66-4.1-2-6.1" aria-label="Mockaton"/>
4
+ </svg>
@@ -51,7 +51,7 @@ export async function sendPartialContent(response, range, file) {
51
51
  export function sendBadRequest(response, error) {
52
52
  console.error(error)
53
53
  response.statusCode = 400
54
- response.end()
54
+ response.end(error)
55
55
  }
56
56
 
57
57
  export function sendNotFound(response) {
@@ -59,12 +59,6 @@ export function sendNotFound(response) {
59
59
  response.end()
60
60
  }
61
61
 
62
- export function sendUnprocessableContent(response, error) {
63
- console.error(error)
64
- response.statusCode = 422
65
- response.end()
66
- }
67
-
68
62
  export function sendInternalServerError(response, error) {
69
63
  console.error(error)
70
64
  response.statusCode = 500