From b05d4c0d992152648566363ba822274847229fb7 Mon Sep 17 00:00:00 2001 From: Mathijs Verbeeck Date: Tue, 25 Jul 2023 13:36:52 +0200 Subject: [PATCH] Fingers crossed --- .../listitem/listitem-attachment-add.spec.ts | 13 ++++++++----- .../commands/listitem/listitem-attachment-add.ts | 6 +++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/m365/spo/commands/listitem/listitem-attachment-add.spec.ts b/src/m365/spo/commands/listitem/listitem-attachment-add.spec.ts index 4b7edf5eca9..8ed2ad8afb0 100644 --- a/src/m365/spo/commands/listitem/listitem-attachment-add.spec.ts +++ b/src/m365/spo/commands/listitem/listitem-attachment-add.spec.ts @@ -5,8 +5,7 @@ import auth from '../../../../Auth'; import { Cli } from '../../../../cli/Cli'; import { CommandInfo } from '../../../../cli/CommandInfo'; import { Logger } from '../../../../cli/Logger'; -import Command from '../../../../Command'; -//, { CommandError } +import Command, { CommandError } from '../../../../Command'; import { formatting } from '../../../../utils/formatting'; import { pid } from '../../../../utils/pid'; import { session } from '../../../../utils/session'; @@ -65,7 +64,7 @@ describe(commands.LISTITEM_ATTACHMENT_ADD, () => { afterEach(() => { sinonUtil.restore([, fs.existsSync, - fs.readSync, + fs.readFileSync, request.post, cli.getSettingWithDefaultValue ]); @@ -116,6 +115,7 @@ describe(commands.LISTITEM_ATTACHMENT_ADD, () => { it('adds attachment to listitem in list retrieved by id while specifying fileName', async () => { sinon.stub(fs, 'existsSync').returns(true); + sinon.stub(fs, 'readFileSync').returns('content read'); sinon.stub(request, 'post').callsFake(async (args) => { if (args.url === `${webUrl}/_api/web/lists(guid'${listId}')/items(${listItemId})/AttachmentFiles/add(FileName='${fileName}')`) { return response; @@ -130,6 +130,7 @@ describe(commands.LISTITEM_ATTACHMENT_ADD, () => { it('adds attachment to listitem in list retrieved by url while not specifying fileName', async () => { sinon.stub(fs, 'existsSync').returns(true); + sinon.stub(fs, 'readFileSync').returns('content read'); sinon.stub(request, 'post').callsFake(async (args) => { if (args.url === `${webUrl}/_api/web/GetList('${formatting.encodeQueryParameter(listServerRelativeUrl)}')/items(${listItemId})/AttachmentFiles/add(FileName='${filePath.replace(/^.*[\\\/]/, '')}')`) { return response; @@ -144,6 +145,7 @@ describe(commands.LISTITEM_ATTACHMENT_ADD, () => { it('adds attachment to listitem in list retrieved by url while specifying fileName without extension', async () => { sinon.stub(fs, 'existsSync').returns(true); + sinon.stub(fs, 'readFileSync').returns('content read'); const fileNameWithoutExtension = fileName.split('.')[0]; const fileNameWithExtension = `${fileNameWithoutExtension}.${filePath.split('.').pop()}`; sinon.stub(request, 'post').callsFake(async (args) => { @@ -160,6 +162,7 @@ describe(commands.LISTITEM_ATTACHMENT_ADD, () => { it('handles error when file with specific name already exists', async () => { sinon.stub(fs, 'existsSync').returns(true); + sinon.stub(fs, 'readFileSync').returns('content read'); const error = { error: { 'odata.error': { @@ -179,7 +182,7 @@ describe(commands.LISTITEM_ATTACHMENT_ADD, () => { throw 'Invalid request'; }); - await command.action(logger, { options: { verbose: true, webUrl: webUrl, listId: listId, listItemId: listItemId, filePath: filePath, fileName: fileName } }); - assert(loggerLogSpy.calledWith(error.error['odata.error'].message.value)); + await assert.rejects(command.action(logger, { options: { verbose: true, webUrl: webUrl, listId: listId, listItemId: listItemId, filePath: filePath, fileName: fileName } }), + new CommandError(error.error['odata.error'].message.value)); }); }); diff --git a/src/m365/spo/commands/listitem/listitem-attachment-add.ts b/src/m365/spo/commands/listitem/listitem-attachment-add.ts index cb3e3892c8f..15c0f12bc80 100644 --- a/src/m365/spo/commands/listitem/listitem-attachment-add.ts +++ b/src/m365/spo/commands/listitem/listitem-attachment-add.ts @@ -141,14 +141,14 @@ class SpoListItemAttachmentAddCommand extends SpoCommand { private getListUrl(webUrl: string, listId?: string, listTitle?: string, listUrl?: string): string { if (listId) { - return `/lists(guid'${formatting.encodeQueryParameter(listId)}')`; + return `lists(guid'${formatting.encodeQueryParameter(listId)}')`; } else if (listTitle) { - return `/lists/getByTitle('${formatting.encodeQueryParameter(listTitle)}')`; + return `lists/getByTitle('${formatting.encodeQueryParameter(listTitle)}')`; } else { const listServerRelativeUrl: string = urlUtil.getServerRelativePath(webUrl, listUrl!); - return `/GetList('${formatting.encodeQueryParameter(listServerRelativeUrl)}')`; + return `GetList('${formatting.encodeQueryParameter(listServerRelativeUrl)}')`; } } }