[ACA-2199] fix Upload New Version action availability (#959)

* fix Upload New Version action availability

* update unit tests

* remove workaround

* add catch for tests failing on Bamboo

* add new line
This commit is contained in:
Adina Parpalita
2019-02-19 16:24:43 +02:00
committed by Cilibiu Bogdan
parent 2fd0ff3825
commit 9ceefff5e6
6 changed files with 77 additions and 27 deletions

View File

@@ -54,7 +54,11 @@ export class Viewer extends Component {
} }
async waitForViewerToOpen() { async waitForViewerToOpen() {
await browser.wait(EC.presenceOf(this.viewerContainer), BROWSER_WAIT_TIMEOUT); try {
await browser.wait(EC.presenceOf(this.viewerContainer), BROWSER_WAIT_TIMEOUT);
} catch (error) {
console.log('\n-----> catch waitForViewerToOpen <-----\n', error)
}
} }
async isViewerOpened() { async isViewerOpened() {

View File

@@ -1201,10 +1201,8 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); expect(await viewerToolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await viewerToolbar.menu.isSharePresent()).toBe(false, `Share is displayed in More actions`); expect(await viewerToolbar.menu.isSharePresent()).toBe(false, `Share is displayed in More actions`);
expect(await viewerToolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`); expect(await viewerToolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`);
// TODO: change expect to false when ACA-1737 is done expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await viewerToolbar.menu.isMovePresent()).toBe(true, `Move is displayed`); expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`);
// TODO: change expect to false when ACA-1737 is done
expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed`);
expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
@@ -1405,10 +1403,8 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); expect(await viewerToolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await viewerToolbar.menu.isSharePresent()).toBe(false, `Share is displayed in More actions`); expect(await viewerToolbar.menu.isSharePresent()).toBe(false, `Share is displayed in More actions`);
expect(await viewerToolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`); expect(await viewerToolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`);
// TODO: change expect to false when ACA-1737 is done expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await viewerToolbar.menu.isMovePresent()).toBe(true, `Move is displayed`); expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`);
// TODO: change expect to false when ACA-1737 is done
expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed`);
expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
await viewerToolbar.closeMoreMenu(); await viewerToolbar.closeMoreMenu();
@@ -1610,10 +1606,8 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); expect(await viewerToolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await viewerToolbar.menu.isSharePresent()).toBe(false, `Share is displayed in More actions`); expect(await viewerToolbar.menu.isSharePresent()).toBe(false, `Share is displayed in More actions`);
expect(await viewerToolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`); expect(await viewerToolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`);
// TODO: change expect to false when ACA-1737 is done expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await viewerToolbar.menu.isMovePresent()).toBe(true, `Move is displayed`); expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`);
// TODO: change expect to false when ACA-1737 is done
expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed`);
expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
await viewerToolbar.closeMoreMenu(); await viewerToolbar.closeMoreMenu();

View File

@@ -244,6 +244,9 @@ describe('app.evaluators', () => {
describe('canUploadVersion', () => { describe('canUploadVersion', () => {
it('should return [true] if user has locked it previously', () => { it('should return [true] if user has locked it previously', () => {
const context: any = { const context: any = {
navigation: {
url: '/personal-files'
},
profile: { profile: {
id: 'user1' id: 'user1'
}, },
@@ -266,6 +269,9 @@ describe('app.evaluators', () => {
it('should return [false] if other user has locked it previously', () => { it('should return [false] if other user has locked it previously', () => {
const context: any = { const context: any = {
navigation: {
url: '/personal-files'
},
profile: { profile: {
id: 'user2' id: 'user2'
}, },
@@ -289,6 +295,9 @@ describe('app.evaluators', () => {
it('should check the [update] operation when no write lock present', () => { it('should check the [update] operation when no write lock present', () => {
let checked = false; let checked = false;
const context: any = { const context: any = {
navigation: {
url: '/personal-files'
},
permissions: { permissions: {
check: () => (checked = true) check: () => (checked = true)
}, },
@@ -312,5 +321,35 @@ describe('app.evaluators', () => {
expect(app.canUploadVersion(context, null)).toBe(true); expect(app.canUploadVersion(context, null)).toBe(true);
expect(checked).toBe(true); expect(checked).toBe(true);
}); });
it('should return [true] if route is `/favorites`', () => {
const context: any = {
navigation: {
url: '/favorites'
}
};
expect(app.canUploadVersion(context, null)).toBe(true);
});
it('should return [true] if route is `/favorites`', () => {
const context: any = {
navigation: {
url: '/favorites'
}
};
expect(app.canUploadVersion(context, null)).toBe(true);
});
it('should return [true] if route is `/shared`', () => {
const context: any = {
navigation: {
url: '/shared'
}
};
expect(app.canUploadVersion(context, null)).toBe(true);
});
}); });
}); });

View File

@@ -271,7 +271,7 @@ export function canUpdateSelectedFolder(
const { folder } = context.selection; const { folder } = context.selection;
if (folder) { if (folder) {
return ( return (
// workaround for Search Api // workaround for Favorites Api
isFavorites(context, ...args) || isFavorites(context, ...args) ||
context.permissions.check(folder.entry, ['update']) context.permissions.check(folder.entry, ['update'])
); );
@@ -353,6 +353,10 @@ export function canUploadVersion(
context: AppRuleContext, context: AppRuleContext,
...args: RuleParameter[] ...args: RuleParameter[]
): boolean { ): boolean {
if (isFavorites(context, ...args) || isSharedFiles(context, ...args)) {
return true;
}
return isWriteLocked(context, ...args) return isWriteLocked(context, ...args)
? isUserWriteLockOwner(context, ...args) ? isUserWriteLockOwner(context, ...args)
: canUpdateSelectedNode(context, ...args); : canUpdateSelectedNode(context, ...args);

View File

@@ -25,12 +25,20 @@
import { RuleContext, RuleParameter } from '@alfresco/adf-extensions'; import { RuleContext, RuleParameter } from '@alfresco/adf-extensions';
export function isPreview(
context: RuleContext,
...args: RuleParameter[]
): boolean {
const { url } = context.navigation;
return url && url.includes('/preview/');
}
export function isFavorites( export function isFavorites(
context: RuleContext, context: RuleContext,
...args: RuleParameter[] ...args: RuleParameter[]
): boolean { ): boolean {
const { url } = context.navigation; const { url } = context.navigation;
return url && url.startsWith('/favorites'); return url && url.startsWith('/favorites') && !isPreview(context, ...args);
} }
export function isNotFavorites( export function isNotFavorites(
@@ -45,7 +53,7 @@ export function isSharedFiles(
...args: RuleParameter[] ...args: RuleParameter[]
): boolean { ): boolean {
const { url } = context.navigation; const { url } = context.navigation;
return url && url.startsWith('/shared'); return url && url.startsWith('/shared') && !isPreview(context, ...args);
} }
export function isNotSharedFiles( export function isNotSharedFiles(
@@ -133,14 +141,6 @@ export function isNotSearchResults(
return !isSearchResults(context, ...args); return !isSearchResults(context, ...args);
} }
export function isPreview(
context: RuleContext,
...args: RuleParameter[]
): boolean {
const { url } = context.navigation;
return url && url.includes('/preview/');
}
export function isSharedPreview( export function isSharedPreview(
context: RuleContext, context: RuleContext,
...args: RuleParameter[] ...args: RuleParameter[]

View File

@@ -256,6 +256,15 @@
] ]
} }
] ]
},
{
"id": "app.toolbar.canUploadNewVersion",
"type": "core.every",
"parameters": [
{ "type": "rule", "value": "app.selection.file" },
{ "type": "rule", "value": "app.navigation.isNotTrashcan" },
{ "type": "rule", "value": "app.selection.file.canUploadVersion" }
]
} }
], ],
@@ -549,7 +558,7 @@
"click": "UPLOAD_FILE_VERSION" "click": "UPLOAD_FILE_VERSION"
}, },
"rules": { "rules": {
"visible": "app.toolbar.versions" "visible": "app.toolbar.canUploadNewVersion"
} }
}, },
{ {
@@ -721,7 +730,7 @@
"click": "UPLOAD_FILE_VERSION" "click": "UPLOAD_FILE_VERSION"
}, },
"rules": { "rules": {
"visible": "app.toolbar.versions" "visible": "app.toolbar.canUploadNewVersion"
} }
}, },
{ {
@@ -1037,7 +1046,7 @@
"click": "UPLOAD_FILE_VERSION" "click": "UPLOAD_FILE_VERSION"
}, },
"rules": { "rules": {
"visible": "app.toolbar.versions" "visible": "app.toolbar.canUploadNewVersion"
} }
}, },
{ {