From 4254cda482848bfa2634015f60a1e3c9938464da Mon Sep 17 00:00:00 2001 From: swarnadipa-dev Date: Wed, 2 Aug 2023 12:23:55 +0530 Subject: [PATCH] ELEMENTS-1660: prevent replacing and removing an attachment under retention when using nuxeo-file --- ui/test/nuxeo-file.test.js | 48 ++++++++++++++++++++++++++++++++++++++ ui/widgets/nuxeo-file.js | 27 +++++++++++++++++---- 2 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 ui/test/nuxeo-file.test.js diff --git a/ui/test/nuxeo-file.test.js b/ui/test/nuxeo-file.test.js new file mode 100644 index 000000000..8f5cd04de --- /dev/null +++ b/ui/test/nuxeo-file.test.js @@ -0,0 +1,48 @@ +/** + @license + (C) Copyright Nuxeo Corp. (http://nuxeo.com/) + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ +import { fixture, html } from '@nuxeo/testing-helpers'; +import '../widgets/nuxeo-file'; + +suite('nuxeo-file', () => { + let element; + setup(async () => { + element = await fixture( + html` + + `, + ); + }); + + suite('should return whether property is under retention', () => { + test('when file:content is a retained property && xpath = file:content', () => { + const document = { + isUnderRetentionOrLegalHold: true, + retainedProperties: ['file:content'], + }; + element.xpath = 'file:content'; + expect(element._isDropzoneVisible(document)).to.eql(true); + }); + test('when file:content is not a retained property && xpath = file:content', () => { + const document = { + isUnderRetentionOrLegalHold: true, + retainedProperties: [], + }; + element.xpath = 'file:content'; + expect(element._isDropzoneVisible(document)).to.eql(false); + }); + }); +}); diff --git a/ui/widgets/nuxeo-file.js b/ui/widgets/nuxeo-file.js index 601a12be3..bf09b2785 100644 --- a/ui/widgets/nuxeo-file.js +++ b/ui/widgets/nuxeo-file.js @@ -105,7 +105,7 @@ import { UploaderBehavior } from './nuxeo-uploader-behavior.js'; required$="[[required]]" /> -
+