mock-aws-s3-v3 6.0.1 → 6.0.2

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.
@@ -3,31 +3,36 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const client_s3_1 = require("@aws-sdk/client-s3");
4
4
  const mockS3_1 = require("../mockS3");
5
5
  test('use both actual and mock', async () => {
6
+ var _a;
6
7
  const mockClient = (0, mockS3_1.createS3Client)({
7
8
  localDirectory: 'goldstackLocal/s3',
8
9
  bucket: 'test-local',
9
10
  });
10
- try {
11
- await mockClient.send(new client_s3_1.GetObjectCommand({
12
- Bucket: 'test-local',
13
- Key: 'iamcertainlynotthere',
14
- }));
15
- }
16
- catch (e) {
17
- if (e instanceof client_s3_1.NoSuchKey) {
18
- // pass
19
- }
20
- else {
21
- throw e;
22
- }
23
- }
24
- (0, mockS3_1.resetMocks)('test-local');
25
- expect(async () => {
26
- const realClient = new client_s3_1.S3Client();
27
- await realClient.send(new client_s3_1.GetObjectCommand({
28
- Bucket: 'doesntextist-22332',
29
- Key: 'alsodoesntexist',
30
- }));
31
- }).rejects.toThrowError();
11
+ await mockClient.send(new client_s3_1.PutObjectCommand({
12
+ Bucket: 'test-local',
13
+ Key: 'test-key',
14
+ Body: 'hello',
15
+ }));
16
+ const res = await mockClient.send(new client_s3_1.GetObjectCommand({
17
+ Bucket: 'test-local',
18
+ Key: 'test-key',
19
+ }));
20
+ expect(await ((_a = res.Body) === null || _a === void 0 ? void 0 : _a.transformToString())).toBe('hello');
21
+ // Should throw NoSuchKey when getting non-existent key from mocked bucket
22
+ await expect(mockClient.send(new client_s3_1.GetObjectCommand({
23
+ Bucket: 'test-local',
24
+ Key: 'non-existent-key',
25
+ }))).rejects.toThrow(client_s3_1.NoSuchKey);
26
+ // When using a non-mocked bucket through mock client, it should forward to real client and throw
27
+ await expect(mockClient.send(new client_s3_1.GetObjectCommand({
28
+ Bucket: 'test-local-not',
29
+ Key: 'test-key',
30
+ }))).rejects.toThrow();
31
+ // Direct use of real client should also throw
32
+ const realClient = new client_s3_1.S3Client();
33
+ await expect(realClient.send(new client_s3_1.GetObjectCommand({
34
+ Bucket: 'test-remote-fake',
35
+ Key: 'test-key',
36
+ }))).rejects.toThrow();
32
37
  });
33
38
  //# sourceMappingURL=useBothMockAndActualClient.js.map
@@ -1 +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;QAChC,cAAc,EAAE,mBAAmB;QACnC,MAAM,EAAE,YAAY;KACrB,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,IAAI,CACnB,IAAI,4BAAgB,CAAC;YACnB,MAAM,EAAE,YAAY;YACpB,GAAG,EAAE,sBAAsB;SAC5B,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,qBAAS,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,IAAA,mBAAU,EAAC,YAAY,CAAC,CAAC;IAEzB,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
+ {"version":3,"file":"useBothMockAndActualClient.js","sourceRoot":"","sources":["../../../src/__tests__/useBothMockAndActualClient.ts"],"names":[],"mappings":";;AAAA,kDAK4B;AAC5B,sCAA2C;AAE3C,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;;IAC1C,MAAM,UAAU,GAAG,IAAA,uBAAc,EAAC;QAChC,cAAc,EAAE,mBAAmB;QACnC,MAAM,EAAE,YAAY;KACrB,CAAC,CAAC;IACH,MAAM,UAAU,CAAC,IAAI,CACnB,IAAI,4BAAgB,CAAC;QACnB,MAAM,EAAE,YAAY;QACpB,GAAG,EAAE,UAAU;QACf,IAAI,EAAE,OAAO;KACd,CAAC,CACH,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAC/B,IAAI,4BAAgB,CAAC;QACnB,MAAM,EAAE,YAAY;QACpB,GAAG,EAAE,UAAU;KAChB,CAAC,CACH,CAAC;IACF,MAAM,CAAC,MAAM,CAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,iBAAiB,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE1D,0EAA0E;IAC1E,MAAM,MAAM,CACV,UAAU,CAAC,IAAI,CACb,IAAI,4BAAgB,CAAC;QACnB,MAAM,EAAE,YAAY;QACpB,GAAG,EAAE,kBAAkB;KACxB,CAAC,CACH,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAS,CAAC,CAAC;IAE7B,iGAAiG;IACjG,MAAM,MAAM,CACV,UAAU,CAAC,IAAI,CACb,IAAI,4BAAgB,CAAC;QACnB,MAAM,EAAE,gBAAgB;QACxB,GAAG,EAAE,UAAU;KAChB,CAAC,CACH,CACF,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAEpB,8CAA8C;IAC9C,MAAM,UAAU,GAAG,IAAI,oBAAQ,EAAE,CAAC;IAClC,MAAM,MAAM,CACV,UAAU,CAAC,IAAI,CACb,IAAI,4BAAgB,CAAC;QACnB,MAAM,EAAE,kBAAkB;QAC1B,GAAG,EAAE,UAAU;KAChB,CAAC,CACH,CACF,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACtB,CAAC,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { S3Client } from '@aws-sdk/client-s3';
2
2
  /**
3
3
  * Resets mocks for a specific bucket. If no bucket provided, resets all mocks.
4
+ * @param bucket - Optional bucket name to reset
4
5
  */
5
6
  export declare function resetMocks(bucket?: string): void;
6
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mockS3.d.ts","sourceRoot":"","sources":["../../src/mockS3.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAW5B;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,QAUzC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,cAAc,EACd,QAAQ,EACR,MAAM,GACP,EAAE,qBAAqB,GAAG,QAAQ,CAiGlC"}
1
+ {"version":3,"file":"mockS3.d.ts","sourceRoot":"","sources":["../../src/mockS3.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAwB5B;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAMhD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;CAChB;AAYD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,cAAc,EACd,QAAQ,EACR,MAAM,GACP,EAAE,qBAAqB,GAAG,QAAQ,CAsHlC"}
@@ -1,106 +1,165 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
5
35
  Object.defineProperty(exports, "__esModule", { value: true });
6
36
  exports.resetMocks = resetMocks;
7
37
  exports.createS3Client = createS3Client;
8
38
  const client_s3_1 = require("@aws-sdk/client-s3");
9
39
  const aws_sdk_client_mock_1 = require("aws-sdk-client-mock");
10
- const mock_aws_s3_1 = __importDefault(require("mock-aws-s3"));
11
- const clientsByBucket = new Map();
12
- const mockClientsByBucket = new Map();
13
- const mockS3ByBucket = new Map();
40
+ const path_1 = require("path");
41
+ const s3Mock = __importStar(require("mock-aws-s3"));
42
+ const bucketContexts = new Map();
14
43
  /**
15
44
  * Resets mocks for a specific bucket. If no bucket provided, resets all mocks.
45
+ * @param bucket - Optional bucket name to reset
16
46
  */
17
47
  function resetMocks(bucket) {
18
48
  if (bucket) {
19
- clientsByBucket.delete(bucket);
20
- mockClientsByBucket.delete(bucket);
21
- mockS3ByBucket.delete(bucket);
49
+ bucketContexts.delete(bucket);
22
50
  }
23
51
  else {
24
- clientsByBucket.clear();
25
- mockClientsByBucket.clear();
26
- mockS3ByBucket.clear();
52
+ bucketContexts.clear();
27
53
  }
28
54
  }
55
+ /**
56
+ * Validates and retrieves bucket context, throwing an error if not found
57
+ * @param bucket - Bucket name to validate
58
+ * @returns BucketContext for the specified bucket
59
+ */
60
+ function getBucketContext(bucket) {
61
+ const context = bucketContexts.get(bucket);
62
+ return context;
63
+ }
29
64
  /**
30
65
  * Creates a mocked S3 instance for a specific bucket.
31
66
  * Each bucket gets its own mock instance to prevent interference.
32
67
  */
33
68
  function createS3Client({ localDirectory, s3Client, bucket, }) {
34
- if (!s3Client) {
35
- s3Client = clientsByBucket.get(bucket) || new client_s3_1.S3Client();
36
- clientsByBucket.set(bucket, s3Client);
69
+ if (!bucket) {
70
+ throw new Error('Bucket name is required');
37
71
  }
38
- if (!mockClientsByBucket.has(bucket)) {
39
- const client = (0, aws_sdk_client_mock_1.mockClient)(s3Client);
40
- mockClientsByBucket.set(bucket, client);
41
- mock_aws_s3_1.default.config.basePath = localDirectory;
42
- const mockS3 = new mock_aws_s3_1.default.S3({
43
- params: { Bucket: bucket },
44
- });
45
- mockS3ByBucket.set(bucket, mockS3);
46
- s3Client._goldstackRequests = [];
47
- client.on(client_s3_1.PutObjectCommand).callsFake(async (input) => {
48
- s3Client._goldstackRequests.push({
49
- command: 'PutObject',
50
- input,
51
- });
52
- return await mockS3.putObject(input).promise();
53
- });
54
- client.on(client_s3_1.GetObjectCommand).callsFake(async (input) => {
55
- s3Client._goldstackRequests.push({
56
- command: 'GetObject',
72
+ if (!localDirectory) {
73
+ throw new Error('Local directory is required');
74
+ }
75
+ let context = bucketContexts.get(bucket);
76
+ if (context) {
77
+ return context.client;
78
+ }
79
+ const client = s3Client || new client_s3_1.S3Client();
80
+ const clientSend = client.send.bind(client);
81
+ const mockClientInstance = (0, aws_sdk_client_mock_1.mockClient)(client);
82
+ s3Mock.config.basePath = (0, path_1.resolve)(localDirectory);
83
+ const mockS3 = new s3Mock.S3({
84
+ params: { Bucket: bucket },
85
+ });
86
+ context = {
87
+ client,
88
+ mockClient: mockClientInstance,
89
+ mockS3,
90
+ localDirectory: (0, path_1.resolve)(localDirectory),
91
+ };
92
+ bucketContexts.set(bucket, context);
93
+ client._goldstackRequests = [];
94
+ const operations = [
95
+ { command: client_s3_1.PutObjectCommand, method: 'putObject' },
96
+ { command: client_s3_1.GetObjectCommand, method: 'getObject' },
97
+ { command: client_s3_1.CreateBucketCommand, method: 'createBucket' },
98
+ { command: client_s3_1.DeleteBucketCommand, method: 'deleteBucket' },
99
+ { command: client_s3_1.ListObjectsCommand, method: 'listObjects' },
100
+ { command: client_s3_1.ListObjectsV2Command, method: 'listObjectsV2' },
101
+ { command: client_s3_1.DeleteObjectsCommand, method: 'deleteObjects' },
102
+ { command: client_s3_1.DeleteObjectCommand, method: 'deleteObject' },
103
+ { command: client_s3_1.HeadObjectCommand, method: 'headObject' },
104
+ { command: client_s3_1.CopyObjectCommand, method: 'copyObject' },
105
+ { command: client_s3_1.GetObjectTaggingCommand, method: 'getObjectTagging' },
106
+ { command: client_s3_1.PutObjectTaggingCommand, method: 'putObjectTagging' },
107
+ { command: client_s3_1.ListBucketsCommand, method: undefined }, // not supported
108
+ ];
109
+ operations.forEach(({ command, method }) => {
110
+ mockClientInstance
111
+ .on(command)
112
+ .callsFake(async (input) => {
113
+ const context = getBucketContext(input.Bucket);
114
+ if (!context) {
115
+ // if no context defined for bucket, send command to real client
116
+ const commandWithInput = new command(input);
117
+ return await clientSend(commandWithInput);
118
+ }
119
+ if (!method) {
120
+ throw new Error(`Method ${command.name} not implemented.`);
121
+ }
122
+ s3Mock.config.basePath = context.localDirectory;
123
+ context.client._goldstackRequests.push({
124
+ command: command.name,
57
125
  input,
58
126
  });
59
- const resOperation = mockS3.getObject(input);
60
- try {
61
- const res = await resOperation.promise();
62
- const output = { ...res };
63
- const body = {
64
- transformToString: async () => { var _a; return ((_a = res.Body) === null || _a === void 0 ? void 0 : _a.toString()) || ''; },
65
- pipe: (destination, options) => {
66
- return resOperation.createReadStream().pipe(destination, options);
67
- },
68
- };
69
- output.Body = body;
70
- return output;
127
+ if (process.env.GOLDSTACK_DEBUG) {
128
+ console.debug(`Performing command ${command.name} on mock S3 bucket ${input.Bucket}.\n Folder for local bucket: ${context.localDirectory}`);
71
129
  }
72
- catch (e) {
73
- const awsError = e;
74
- if (awsError.code === 'NoSuchKey') {
75
- throw new client_s3_1.NoSuchKey({
76
- message: e.message,
77
- $metadata: {},
78
- });
130
+ const operation = context.mockS3[method](input);
131
+ if (method === 'getObject') {
132
+ let stream;
133
+ try {
134
+ const res = await operation.promise();
135
+ const output = { ...res };
136
+ const body = {
137
+ transformToString: async () => { var _a; return ((_a = res.Body) === null || _a === void 0 ? void 0 : _a.toString()) || ''; },
138
+ pipe: (destination, options) => {
139
+ stream = operation.createReadStream();
140
+ return stream.pipe(destination, options);
141
+ },
142
+ };
143
+ output.Body = body;
144
+ return output;
145
+ }
146
+ catch (e) {
147
+ if (stream) {
148
+ stream.destroy();
149
+ }
150
+ const awsError = e;
151
+ if (awsError.code === 'NoSuchKey') {
152
+ throw new client_s3_1.NoSuchKey({
153
+ message: e.message,
154
+ $metadata: {},
155
+ });
156
+ }
157
+ throw e;
79
158
  }
80
- throw e;
81
159
  }
160
+ return await operation.promise();
82
161
  });
83
- wrappedAsIs(client, mockS3, client_s3_1.CreateBucketCommand, 'createBucket', s3Client);
84
- wrappedAsIs(client, mockS3, client_s3_1.DeleteBucketCommand, 'deleteBucket', s3Client);
85
- wrappedAsIs(client, mockS3, client_s3_1.ListObjectsCommand, 'listObjects', s3Client);
86
- wrappedAsIs(client, mockS3, client_s3_1.ListObjectsV2Command, 'listObjectsV2', s3Client);
87
- wrappedAsIs(client, mockS3, client_s3_1.DeleteObjectsCommand, 'deleteObjects', s3Client);
88
- wrappedAsIs(client, mockS3, client_s3_1.DeleteObjectCommand, 'deleteObject', s3Client);
89
- wrappedAsIs(client, mockS3, client_s3_1.HeadObjectCommand, 'headObject', s3Client);
90
- wrappedAsIs(client, mockS3, client_s3_1.CopyObjectCommand, 'copyObject', s3Client);
91
- wrappedAsIs(client, mockS3, client_s3_1.GetObjectTaggingCommand, 'getObjectTagging', s3Client);
92
- wrappedAsIs(client, mockS3, client_s3_1.PutObjectTaggingCommand, 'putObjectTagging', s3Client);
93
- notSupported(client, client_s3_1.ListBucketsCommand);
94
- }
95
- return s3Client;
96
- }
97
- function wrappedAsIs(client, mockS3, command, methodName, s3Client) {
98
- client.on(command).callsFake(async (input) => {
99
- s3Client._goldstackRequests.push({ command: command.name, input });
100
- return await mockS3[methodName](input).promise();
101
162
  });
102
- }
103
- function notSupported(client, command) {
104
- client.on(command).rejects('Method ' + command.name + ' not implemented.');
163
+ return client;
105
164
  }
106
165
  //# sourceMappingURL=mockS3.js.map
@@ -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": "6.0.1",
3
+ "version": "6.0.2",
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",