mock-aws-s3-v3 5.0.7 → 5.0.8

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
@@ -44,3 +44,15 @@ The following operations are currently supported in this mock:
44
44
  - PutObjectTaggingCommand
45
45
 
46
46
  Same as [mock-aws-s3](https://www.npmjs.com/package/mock-aws-s3) minus `getSignedUrl`. For an example of how `getSignedUrl` could be mocked, see [templateS3Bucket.ts](https://github.com/goldstack/goldstack/blob/5842322ed4f5165da56fc2ab899f11bd9e1821e3/workspaces/templates-lib/packages/template-s3/src/templateS3Bucket.ts#L64).
47
+
48
+ ## ⚠️ Using Multiple Clients ⚠️
49
+
50
+ The way `aws-sdk-client-mock` is implemented will cause `createS3Client` to mock ALL S3 clients globally. Thus the folder specified will be used for all calls happening after `createS3Client`.
51
+
52
+ This will also apply to S3 clients that have not been mocked. To reset the mock and have `S3Client` instances behave like _real_ instances, use the method: `resetMocks`
53
+
54
+ ```typescript
55
+ import { resetMocks } from 'mock-aws-s3-v3';
56
+
57
+ resetMocks();
58
+ ```
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useBothMockAndActualClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBothMockAndActualClient.d.ts","sourceRoot":"","sources":["../../../src/__tests__/useBothMockAndActualClient.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const client_s3_1 = require("@aws-sdk/client-s3");
4
+ const mockS3_1 = require("../mockS3");
5
+ test('use both actual and mock', async () => {
6
+ const mockClient = (0, mockS3_1.createS3Client)('goldstackLocal/s3');
7
+ try {
8
+ await mockClient.send(new client_s3_1.GetObjectCommand({
9
+ Bucket: 'test-local',
10
+ Key: 'iamcertainlynotthere',
11
+ }));
12
+ }
13
+ catch (e) {
14
+ if (e instanceof client_s3_1.NoSuchKey) {
15
+ // pass
16
+ }
17
+ else {
18
+ throw e;
19
+ }
20
+ }
21
+ (0, mockS3_1.resetMocks)();
22
+ expect(async () => {
23
+ const realClient = new client_s3_1.S3Client();
24
+ await realClient.send(new client_s3_1.GetObjectCommand({
25
+ Bucket: 'doesntextist-22332',
26
+ Key: 'alsodoesntexist',
27
+ }));
28
+ }).rejects.toThrowError();
29
+ });
30
+ //# sourceMappingURL=useBothMockAndActualClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBothMockAndActualClient.js","sourceRoot":"","sources":["../../../src/__tests__/useBothMockAndActualClient.ts"],"names":[],"mappings":";;AAAA,kDAA2E;AAC3E,sCAAuD;AAEvD,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;IAC1C,MAAM,UAAU,GAAG,IAAA,uBAAc,EAAC,mBAAmB,CAAC,CAAC;IACvD,IAAI;QACF,MAAM,UAAU,CAAC,IAAI,CACnB,IAAI,4BAAgB,CAAC;YACnB,MAAM,EAAE,YAAY;YACpB,GAAG,EAAE,sBAAsB;SAC5B,CAAC,CACH,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,qBAAS,EAAE;YAC1B,OAAO;SACR;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;IAED,IAAA,mBAAU,GAAE,CAAC;IAEb,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,UAAU,GAAG,IAAI,oBAAQ,EAAE,CAAC;QAClC,MAAM,UAAU,CAAC,IAAI,CACnB,IAAI,4BAAgB,CAAC;YACnB,MAAM,EAAE,oBAAoB;YAC5B,GAAG,EAAE,iBAAiB;SACvB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC"}
@@ -1,3 +1,16 @@
1
1
  import { S3Client } from '@aws-sdk/client-s3';
2
+ /**
3
+ * Resets all mocks globally
4
+ */
5
+ export declare function resetMocks(): void;
6
+ /**
7
+ * Creates a mocked S3 instance.
8
+ *
9
+ * WARNING: This mocks ALL S3 instances, not just the created one. To reset mock behaviour, use resetMocks()
10
+ *
11
+ * @param localDirectory
12
+ * @param s3Client
13
+ * @returns
14
+ */
2
15
  export declare function createS3Client(localDirectory: string, s3Client?: S3Client): S3Client;
3
16
  //# sourceMappingURL=mockS3.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mockS3.d.ts","sourceRoot":"","sources":["../../src/mockS3.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAO5B,wBAAgB,cAAc,CAC5B,cAAc,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,QAAQ,GAClB,QAAQ,CAyDV"}
1
+ {"version":3,"file":"mockS3.d.ts","sourceRoot":"","sources":["../../src/mockS3.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAS5B;;GAEG;AACH,wBAAgB,UAAU,SAGzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,cAAc,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,QAAQ,GAClB,QAAQ,CAyDV"}
@@ -3,10 +3,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createS3Client = void 0;
6
+ exports.createS3Client = exports.resetMocks = void 0;
7
7
  const client_s3_1 = require("@aws-sdk/client-s3");
8
8
  const aws_sdk_client_mock_1 = require("aws-sdk-client-mock");
9
9
  const mock_aws_s3_1 = __importDefault(require("mock-aws-s3"));
10
+ /**
11
+ * Resets all mocks globally
12
+ */
13
+ function resetMocks() {
14
+ const s3Client = new client_s3_1.S3Client();
15
+ (0, aws_sdk_client_mock_1.mockClient)(s3Client).reset();
16
+ }
17
+ exports.resetMocks = resetMocks;
18
+ /**
19
+ * Creates a mocked S3 instance.
20
+ *
21
+ * WARNING: This mocks ALL S3 instances, not just the created one. To reset mock behaviour, use resetMocks()
22
+ *
23
+ * @param localDirectory
24
+ * @param s3Client
25
+ * @returns
26
+ */
10
27
  function createS3Client(localDirectory, s3Client) {
11
28
  if (!s3Client) {
12
29
  s3Client = new client_s3_1.S3Client();
@@ -1 +1 @@
1
- {"version":3,"file":"mockS3.js","sourceRoot":"","sources":["../../src/mockS3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mockS3.js","sourceRoot":"","sources":["../../src/mockS3.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mock-aws-s3-v3",
3
- "version": "5.0.7",
3
+ "version": "5.0.8",
4
4
  "description": "Local file-based mock for AWS S3 for unit and local testing for AWS JavaScript SDK v3+.",
5
5
  "keywords": [
6
6
  "node",
@@ -36,8 +36,10 @@
36
36
  "dependencies": {
37
37
  "@aws-sdk/client-s3": "3.620.0",
38
38
  "@smithy/types": "^3.3.0",
39
+ "@types/sinon": "^17.0.3",
39
40
  "aws-sdk-client-mock": "^4.0.1",
40
- "mock-aws-s3": "^4.0.2"
41
+ "mock-aws-s3": "^4.0.2",
42
+ "sinon": "^19.0.2"
41
43
  },
42
44
  "devDependencies": {
43
45
  "@goldstack/utils-git": "0.2.9",