@tryghost/express-test 0.1.1 → 0.2.0

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/lib/agent.js CHANGED
@@ -37,7 +37,7 @@ class Agent {
37
37
  }
38
38
  }
39
39
 
40
- ['get', 'post', 'put', 'del'].forEach((method) => {
40
+ ['get', 'post', 'put', 'patch', 'delete', 'options', 'head'].forEach((method) => {
41
41
  Agent.prototype[method] = function (url, options) {
42
42
  if (!url) {
43
43
  throw new Error('Cannot make a request without supplying a url'); /* eslint-disable-line no-restricted-syntax */
@@ -7,6 +7,12 @@ class ExpectRequest extends Request {
7
7
  }
8
8
 
9
9
  expect(callback) {
10
+ if (typeof callback !== 'function') {
11
+ throw new Error(/* eslint-disable-line no-restricted-syntax */
12
+ 'express-test expect() requires a callback function, did you mean expectStatus or expectHeader?'
13
+ );
14
+ }
15
+
10
16
  const wrapperFn = (response, assertion) => {
11
17
  try {
12
18
  callback(response);
@@ -47,6 +53,7 @@ class ExpectRequest extends Request {
47
53
 
48
54
  return this;
49
55
  }
56
+
50
57
  finalize(callback) {
51
58
  super.finalize((error, response) => {
52
59
  if (error) {
@@ -96,17 +103,25 @@ class ExpectRequest extends Request {
96
103
  _assertHeader(response, assertion) {
97
104
  const {expectedField, expectedValue, error} = assertion;
98
105
  const actual = response.headers[expectedField];
106
+
99
107
  const expectedHeaderString = `${expectedField}: ${expectedValue}`;
100
108
  const actualHeaderString = `${expectedField}: ${actual}`;
101
109
 
102
110
  error.expected = expectedHeaderString;
103
111
  error.actual = actualHeaderString;
104
112
 
105
- error.message = `Expected header "${expectedHeaderString}" to exist but got ${JSON.stringify(response.headers)} ${error.contextString}`;
113
+ error.message = `Expected header "${expectedHeaderString}" to exist, got headers: ${JSON.stringify(response.headers)} ${error.contextString}`;
106
114
  assert.notStrictEqual(actual, undefined, error);
107
115
 
108
- error.message = `Expected header "${expectedHeaderString}", got ${actualHeaderString} ${error.contextString}`;
109
- assert.equal(expectedHeaderString, actualHeaderString, error);
116
+ if (expectedValue instanceof RegExp) {
117
+ error.expected = expectedValue;
118
+ error.actual = actual;
119
+ error.message = `Expected header "${expectedField}" to have value matching "${expectedValue}", got "${actual}" ${error.contextString}`;
120
+ assert.equal(expectedValue.test(actual), true, error);
121
+ } else {
122
+ error.message = `Expected header "${expectedHeaderString}", got "${actualHeaderString}" ${error.contextString}`;
123
+ assert.equal(expectedHeaderString, actualHeaderString, error);
124
+ }
110
125
  }
111
126
  }
112
127
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryghost/express-test",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "repository": "https://github.com/TryGhost/framework/tree/main/packages/express-test",
5
5
  "author": "Ghost Foundation",
6
6
  "license": "MIT",
@@ -29,5 +29,5 @@
29
29
  "cookiejar": "^2.1.3",
30
30
  "reqresnext": "^1.6.6"
31
31
  },
32
- "gitHead": "81312a5f57f2c71f189457b9e4e4e1fa1f749b0e"
32
+ "gitHead": "ba2449737cd3a66d811e34b5b28b86f5d3538396"
33
33
  }