Skip to content

Commit 8574535

Browse files
shaffeeullahgcf-owl-bot[bot]
authored andcommitted
fix: don't modify passed in options (googleapis#1895)
* fix: don't modify passed in options * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * added test * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent f542d32 commit 8574535

2 files changed

Lines changed: 20 additions & 8 deletions

File tree

src/file.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1804,7 +1804,7 @@ class File extends ServiceObject<File> {
18041804
*/
18051805
// eslint-disable-next-line @typescript-eslint/no-explicit-any
18061806
createWriteStream(options: CreateWriteStreamOptions = {}): Writable {
1807-
options = Object.assign({metadata: {}}, options);
1807+
options = extend(true, {metadata: {}}, options);
18081808

18091809
if (options.contentType) {
18101810
options.metadata.contentType = options.contentType;
@@ -3695,7 +3695,8 @@ class File extends ServiceObject<File> {
36953695
dup: Duplexify,
36963696
options: CreateResumableUploadOptions
36973697
): void {
3698-
options = Object.assign(
3698+
options = extend(
3699+
true,
36993700
{
37003701
metadata: {},
37013702
},
@@ -3762,7 +3763,8 @@ class File extends ServiceObject<File> {
37623763
* @private
37633764
*/
37643765
startSimpleUpload_(dup: Duplexify, options?: CreateWriteStreamOptions): void {
3765-
options = Object.assign(
3766+
options = extend(
3767+
true,
37663768
{
37673769
metadata: {},
37683770
},

test/file.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1993,7 +1993,6 @@ describe('File', () => {
19931993
const writable = file.createWriteStream(options);
19941994

19951995
file.startSimpleUpload_ = (stream: {}, options_: {}) => {
1996-
assert.deepStrictEqual(options_, options);
19971996
done();
19981997
};
19991998

@@ -2009,7 +2008,6 @@ describe('File', () => {
20092008
const writable = file.createWriteStream(options);
20102009

20112010
file.startResumableUpload_ = (stream: {}, options_: {}) => {
2012-
assert.deepStrictEqual(options_, options);
20132011
done();
20142012
};
20152013

@@ -2023,7 +2021,6 @@ describe('File', () => {
20232021

20242022
// eslint-disable-next-line @typescript-eslint/no-explicit-any
20252023
file.startResumableUpload_ = (stream: {}, options: any) => {
2026-
assert.deepStrictEqual(options.metadata, METADATA);
20272024
done();
20282025
};
20292026

@@ -2064,6 +2061,19 @@ describe('File', () => {
20642061
writable.write('data');
20652062
});
20662063

2064+
it('should not overwrite passed in options', done => {
2065+
const emptyObject = {};
2066+
const writable = file.createWriteStream(emptyObject);
2067+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
2068+
file.startResumableUpload_ = (stream: {}, options: any) => {
2069+
assert.strictEqual(options.metadata.contentType, 'image/png');
2070+
assert.deepStrictEqual(emptyObject, {});
2071+
done();
2072+
};
2073+
2074+
writable.write('data');
2075+
});
2076+
20672077
it('should not set a contentType if mime lookup failed', done => {
20682078
const file = new File('file-without-ext');
20692079
const writable = file.createWriteStream();
@@ -4622,7 +4632,7 @@ describe('File', () => {
46224632
assert.strictEqual(opts.file, file.name);
46234633
assert.strictEqual(opts.generation, file.generation);
46244634
assert.strictEqual(opts.key, file.encryptionKey);
4625-
assert.strictEqual(opts.metadata, options.metadata);
4635+
assert.deepStrictEqual(opts.metadata, options.metadata);
46264636
assert.strictEqual(opts.offset, options.offset);
46274637
assert.strictEqual(opts.predefinedAcl, options.predefinedAcl);
46284638
assert.strictEqual(opts.private, options.private);
@@ -4785,7 +4795,7 @@ describe('File', () => {
47854795

47864796
// eslint-disable-next-line @typescript-eslint/no-explicit-any
47874797
makeWritableStreamOverride = (stream: {}, options_: any) => {
4788-
assert.strictEqual(options_.metadata, options.metadata);
4798+
assert.deepStrictEqual(options_.metadata, options.metadata);
47894799
assert.deepStrictEqual(options_.request, {
47904800
qs: {
47914801
name: file.name,

0 commit comments

Comments
 (0)