mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-07-31 17:38:28 +00:00
[AAE-5874] Re-evaluate extension rules when context changes (#2296)
* [AAE-5874] Re-evaluate extension rules when context changes * [AAE-5874] Add disabled attribute to toolbar actions * [AAE-5874] Fix unit tests
This commit is contained in:
committed by
Denys Vuika
parent
46a179c75a
commit
c4e4b50f8a
@@ -60,9 +60,17 @@ describe('AppExtensionService', () => {
|
||||
extensions = TestBed.inject(ExtensionService);
|
||||
});
|
||||
|
||||
const applyConfig = (config: ExtensionConfig) => {
|
||||
const applyConfig = (config: ExtensionConfig, selection?: boolean) => {
|
||||
extensions.setup(config);
|
||||
service.setup(config);
|
||||
if (selection) {
|
||||
service.selection = {
|
||||
isEmpty: false,
|
||||
count: 1,
|
||||
libraries: null,
|
||||
nodes: null
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
describe('configs', () => {
|
||||
@@ -284,7 +292,7 @@ describe('AppExtensionService', () => {
|
||||
});
|
||||
|
||||
describe('content actions', () => {
|
||||
it('should load content actions from the config', () => {
|
||||
it('should load content actions from the config', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -297,23 +305,26 @@ describe('AppExtensionService', () => {
|
||||
{
|
||||
id: 'aca:toolbar/separator-1',
|
||||
order: 1,
|
||||
type: ContentActionType.separator,
|
||||
type: ContentActionType.default,
|
||||
title: 'action1'
|
||||
},
|
||||
{
|
||||
id: 'aca:toolbar/separator-2',
|
||||
order: 2,
|
||||
type: ContentActionType.separator,
|
||||
type: ContentActionType.default,
|
||||
title: 'action2'
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.toolbarActions.length).toBe(2);
|
||||
service.getAllowedToolbarActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(2);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should sort content actions by order', () => {
|
||||
it('should sort content actions by order', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -326,27 +337,30 @@ describe('AppExtensionService', () => {
|
||||
{
|
||||
id: 'aca:toolbar/separator-2',
|
||||
order: 2,
|
||||
type: ContentActionType.separator,
|
||||
type: ContentActionType.default,
|
||||
title: 'action2'
|
||||
},
|
||||
{
|
||||
id: 'aca:toolbar/separator-1',
|
||||
order: 1,
|
||||
type: ContentActionType.separator,
|
||||
type: ContentActionType.default,
|
||||
title: 'action1'
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.toolbarActions.length).toBe(2);
|
||||
expect(service.toolbarActions[0].id).toBe('aca:toolbar/separator-1');
|
||||
expect(service.toolbarActions[1].id).toBe('aca:toolbar/separator-2');
|
||||
service.getAllowedToolbarActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(2);
|
||||
expect(actions[0].id).toBe('aca:toolbar/separator-1');
|
||||
expect(actions[1].id).toBe('aca:toolbar/separator-2');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('open with', () => {
|
||||
it('should load [open with] actions for the viewer', () => {
|
||||
it('should load [open with] actions for the viewer', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -373,10 +387,13 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.openWithActions.length).toBe(1);
|
||||
service.getOpenWithActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(1);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should load only enabled [open with] actions for the viewer', () => {
|
||||
it('should load only enabled [open with] actions for the viewer', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -413,11 +430,14 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.openWithActions.length).toBe(1);
|
||||
expect(service.openWithActions[0].id).toBe('aca:viewer/action2');
|
||||
service.getOpenWithActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(1);
|
||||
expect(actions[0].id).toBe('aca:viewer/action2');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should sort [open with] actions by order', () => {
|
||||
it('should sort [open with] actions by order', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -453,14 +473,17 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.openWithActions.length).toBe(2);
|
||||
expect(service.openWithActions[0].id).toBe('aca:viewer/action1');
|
||||
expect(service.openWithActions[1].id).toBe('aca:viewer/action2');
|
||||
service.getOpenWithActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(2);
|
||||
expect(actions[0].id).toBe('aca:viewer/action1');
|
||||
expect(actions[1].id).toBe('aca:viewer/action2');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('create', () => {
|
||||
it('should load [create] actions from config', () => {
|
||||
it('should load [create] actions from config', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -481,10 +504,13 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.createActions.length).toBe(1);
|
||||
service.getCreateActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(1);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should sort [create] actions by order', () => {
|
||||
it('should sort [create] actions by order', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -512,9 +538,12 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.createActions.length).toBe(2);
|
||||
expect(service.createActions[0].id).toBe('aca:create/folder-2');
|
||||
expect(service.createActions[1].id).toBe('aca:create/folder');
|
||||
service.getCreateActions().subscribe((actions) => {
|
||||
expect(actions.length).toBe(2);
|
||||
expect(actions[0].id).toBe('aca:create/folder-2');
|
||||
expect(actions[1].id).toBe('aca:create/folder');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -700,7 +729,7 @@ describe('AppExtensionService', () => {
|
||||
});
|
||||
|
||||
describe('getSharedLinkViewerToolbarActions', () => {
|
||||
it('should get shared link viewer actions', () => {
|
||||
it('should get shared link viewer actions', (done) => {
|
||||
const actions = [
|
||||
{
|
||||
id: 'id',
|
||||
@@ -724,23 +753,29 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
];
|
||||
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
$version: '1.0.0',
|
||||
$license: 'MIT',
|
||||
$vendor: 'Good company',
|
||||
$runtime: '1.5.0',
|
||||
features: {
|
||||
viewer: {
|
||||
shared: {
|
||||
toolbarActions: actions
|
||||
applyConfig(
|
||||
{
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
$version: '1.0.0',
|
||||
$license: 'MIT',
|
||||
$vendor: 'Good company',
|
||||
$runtime: '1.5.0',
|
||||
features: {
|
||||
viewer: {
|
||||
shared: {
|
||||
toolbarActions: actions
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
true
|
||||
);
|
||||
|
||||
expect(service.getSharedLinkViewerToolbarActions()).toEqual(expectedActions);
|
||||
service.getSharedLinkViewerToolbarActions().subscribe((sharedLinkViewerToolbarActions) => {
|
||||
expect(sharedLinkViewerToolbarActions).toEqual(expectedActions);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -793,7 +828,7 @@ describe('AppExtensionService', () => {
|
||||
});
|
||||
|
||||
describe('getHeaderActions', () => {
|
||||
it('should load user actions from the config', () => {
|
||||
it('should load user actions from the config', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -806,21 +841,24 @@ describe('AppExtensionService', () => {
|
||||
{
|
||||
id: 'header.action.separator.1',
|
||||
order: 1,
|
||||
type: ContentActionType.separator
|
||||
type: ContentActionType.default
|
||||
},
|
||||
{
|
||||
id: 'header.action.separator.2',
|
||||
order: 2,
|
||||
type: ContentActionType.separator
|
||||
type: ContentActionType.default
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.headerActions.length).toBe(2);
|
||||
service.getHeaderActions().subscribe((headerActions) => {
|
||||
expect(headerActions.length).toBe(2);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should sort header actions by order', () => {
|
||||
it('should sort header actions by order', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -844,12 +882,15 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
const actions = service.getHeaderActions();
|
||||
expect(actions[0].id).toBe('header.action.2');
|
||||
expect(actions[1].id).toBe('header.action.1');
|
||||
service.getHeaderActions().subscribe((headerActions) => {
|
||||
expect(headerActions.length).toBe(2);
|
||||
expect(headerActions[0].id).toBe('header.action.2');
|
||||
expect(headerActions[1].id).toBe('header.action.1');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should sort header menu children actions by order', () => {
|
||||
it('should sort header menu children actions by order', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -880,9 +921,12 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
const actions = service.getHeaderActions()[0];
|
||||
expect(actions.children[0].id).toBe('header.action.2');
|
||||
expect(actions.children[1].id).toBe('header.action.1');
|
||||
service.getHeaderActions().subscribe((headerActions) => {
|
||||
expect(headerActions.length).toBe(1);
|
||||
expect(headerActions[0].children[0].id).toBe('header.action.2');
|
||||
expect(headerActions[0].children[1].id).toBe('header.action.1');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1050,7 +1094,7 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
];
|
||||
|
||||
it('should set the action disabled for create actions', () => {
|
||||
it('should set the action disabled for create actions', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -1063,10 +1107,13 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.getCreateActions()).toEqual(expectedActionsWithChildren);
|
||||
service.getCreateActions().subscribe((createActions) => {
|
||||
expect(createActions).toEqual(expectedActionsWithChildren);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should set the action disabled for sidebar actions', () => {
|
||||
it('should set the action disabled for sidebar actions', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -1081,10 +1128,13 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.getAllowedSidebarActions()).toEqual(expectedActionsWithoutChildren);
|
||||
service.getAllowedSidebarActions().subscribe((serviceActions) => {
|
||||
expect(serviceActions).toEqual(expectedActionsWithoutChildren);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should set the action disabled for toolbar actions', () => {
|
||||
it('should set the action disabled for toolbar actions', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -1097,10 +1147,13 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.getAllowedToolbarActions()).toEqual(expectedActionsWithoutChildren);
|
||||
service.getAllowedToolbarActions().subscribe((serviceActions) => {
|
||||
expect(serviceActions).toEqual(expectedActionsWithoutChildren);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should set the action disabled for viewer toolbar actions', () => {
|
||||
it('should set the action disabled for viewer toolbar actions', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -1113,30 +1166,39 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.getViewerToolbarActions()).toEqual(expectedActionsWithoutChildren);
|
||||
service.getViewerToolbarActions().subscribe((serviceActions) => {
|
||||
expect(serviceActions).toEqual(expectedActionsWithoutChildren);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should set the action disabled for shared link viewer toolbar actions', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
$version: '1.0.0',
|
||||
$license: 'MIT',
|
||||
$vendor: 'Good company',
|
||||
$runtime: '1.5.0',
|
||||
features: {
|
||||
viewer: {
|
||||
shared: {
|
||||
toolbarActions: actions
|
||||
it('should set the action disabled for shared link viewer toolbar actions', (done) => {
|
||||
applyConfig(
|
||||
{
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
$version: '1.0.0',
|
||||
$license: 'MIT',
|
||||
$vendor: 'Good company',
|
||||
$runtime: '1.5.0',
|
||||
features: {
|
||||
viewer: {
|
||||
shared: {
|
||||
toolbarActions: actions
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
true
|
||||
);
|
||||
|
||||
expect(service.getSharedLinkViewerToolbarActions()).toEqual(expectedActionsWithoutChildren);
|
||||
service.getSharedLinkViewerToolbarActions().subscribe((serviceActions) => {
|
||||
expect(serviceActions).toEqual(expectedActionsWithoutChildren);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should set the action disabled for header actions', () => {
|
||||
it('should set the action disabled for header actions', (done) => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
@@ -1149,23 +1211,32 @@ describe('AppExtensionService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
expect(service.getHeaderActions()).toEqual(expectedActionsWithoutChildren);
|
||||
service.getHeaderActions().subscribe((serviceActions) => {
|
||||
expect(serviceActions).toEqual(expectedActionsWithoutChildren);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should set the action disabled for context menu actions', () => {
|
||||
applyConfig({
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
$version: '1.0.0',
|
||||
$license: 'MIT',
|
||||
$vendor: 'Good company',
|
||||
$runtime: '1.5.0',
|
||||
features: {
|
||||
contextMenu: actions
|
||||
}
|
||||
});
|
||||
it('should set the action disabled for context menu actions', (done) => {
|
||||
applyConfig(
|
||||
{
|
||||
$id: 'test',
|
||||
$name: 'test',
|
||||
$version: '1.0.0',
|
||||
$license: 'MIT',
|
||||
$vendor: 'Good company',
|
||||
$runtime: '1.5.0',
|
||||
features: {
|
||||
contextMenu: actions
|
||||
}
|
||||
},
|
||||
true
|
||||
);
|
||||
|
||||
expect(service.getAllowedContextMenuActions()).toEqual(expectedActionsWithoutChildren);
|
||||
service.getAllowedContextMenuActions().subscribe((serviceActions) => {
|
||||
expect(serviceActions).toEqual(expectedActionsWithoutChildren);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user