diff --git a/src/sql/workbench/contrib/notebook/test/electron-browser/cell.test.ts b/src/sql/workbench/contrib/notebook/test/electron-browser/cell.test.ts index 3ae947ddae..e19082e592 100644 --- a/src/sql/workbench/contrib/notebook/test/electron-browser/cell.test.ts +++ b/src/sql/workbench/contrib/notebook/test/electron-browser/cell.test.ts @@ -1048,15 +1048,18 @@ suite('Cell Model', function (): void { mimetype: '' }); let contents: nb.ICellContents = { - cell_type: CellTypes.Code, + cell_type: CellTypes.Markdown, source: '', attachments: cellAttachment }; let model = factory.createCell(contents, { notebook: notebookModel, isTrusted: false }); - assert.deepEqual(model.attachments, contents.attachments); + assert.deepEqual(model.attachments, contents.attachments, 'Attachments do not match in cellModel'); + + let serializedCell = model.toJSON(); + assert.deepEqual(serializedCell.attachments, cellAttachment, 'Cell attachment from JSON is incorrect'); }); - test('Should read attachments name from notebook attachments', async function () { + test('Should not include attachments in notebook json if no attachments exist', async function () { let notebookModel = new NotebookModelStub({ name: '', version: '', @@ -1067,10 +1070,9 @@ suite('Cell Model', function (): void { source: '' }; let model = factory.createCell(contents, { notebook: notebookModel, isTrusted: false }); - assert.deepEqual(model.attachments, {}); + assert.deepEqual(model.attachments, undefined, 'Cell model attachments should return undefined if they do not exist'); - contents.attachments = undefined; - model = factory.createCell(contents, { notebook: notebookModel, isTrusted: false }); - assert.deepEqual(model.attachments, {}); + let serializedCell = model.toJSON(); + assert.deepEqual(serializedCell.attachments, undefined, 'JSON should not include attachments if attachments do not exist'); }); }); diff --git a/src/sql/workbench/services/notebook/browser/models/cell.ts b/src/sql/workbench/services/notebook/browser/models/cell.ts index 3596140af1..ef0c0ce9ad 100644 --- a/src/sql/workbench/services/notebook/browser/models/cell.ts +++ b/src/sql/workbench/services/notebook/browser/models/cell.ts @@ -850,7 +850,7 @@ export class CellModel extends Disposable implements ICellModel { if (this._configurationService?.getValue('notebook.saveConnectionName')) { metadata.connection_name = this._savedConnectionName; } - } else if (this._cellType === CellTypes.Markdown) { + } else if (this._cellType === CellTypes.Markdown && this._attachments) { cellJson.attachments = this._attachments; } return cellJson as nb.ICellContents; @@ -873,7 +873,7 @@ export class CellModel extends Disposable implements ICellModel { this._isParameter = false; this._isInjectedParameter = false; } - this._attachments = cell.attachments || {}; + this._attachments = cell.attachments; this._cellGuid = cell.metadata && cell.metadata.azdata_cell_guid ? cell.metadata.azdata_cell_guid : generateUuid(); this.setLanguageFromContents(cell); this._savedConnectionName = this._metadata.connection_name;