mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Show object breadcrumbs path along with its comment on object hover. #2078
This commit is contained in:
105
web/regression/javascript/components/ObjectBreadcrumbs.spec.js
Normal file
105
web/regression/javascript/components/ObjectBreadcrumbs.spec.js
Normal file
@@ -0,0 +1,105 @@
|
||||
/////////////////////////////////////////////////////////////
|
||||
//
|
||||
// pgAdmin 4 - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2013 - 2023, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
//////////////////////////////////////////////////////////////
|
||||
|
||||
import jasmineEnzyme from 'jasmine-enzyme';
|
||||
import React from 'react';
|
||||
import '../helper/enzyme.helper';
|
||||
import { withTheme } from '../fake_theme';
|
||||
import { createMount } from '@material-ui/core/test-utils';
|
||||
import ObjectBreadcrumbs from '../../../pgadmin/static/js/components/ObjectBreadcrumbs';
|
||||
import EventBus from '../../../pgadmin/static/js/helpers/EventBus';
|
||||
|
||||
const pgAdmin = {
|
||||
Browser: {
|
||||
Events: new EventBus(),
|
||||
get_preferences_for_module: function() {
|
||||
return {
|
||||
breadcrumbs_enable: true,
|
||||
breadcrumbs_show_comment: true,
|
||||
};
|
||||
},
|
||||
preference_version: ()=>123,
|
||||
onPreferencesChange: ()=>{/*This is intentional (SonarQube)*/},
|
||||
tree: {
|
||||
getNodeDisplayPath: jasmine.createSpy('getNodeDisplayPath').and.returnValue(['server', 'object']),
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
describe('ObjectBreadcrumbs', ()=>{
|
||||
let mount;
|
||||
|
||||
/* Use createMount so that material ui components gets the required context */
|
||||
/* https://material-ui.com/guides/testing/#api */
|
||||
beforeAll(()=>{
|
||||
mount = createMount();
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
mount.cleanUp();
|
||||
});
|
||||
|
||||
beforeEach(()=>{
|
||||
jasmineEnzyme();
|
||||
});
|
||||
|
||||
it('not hovered', (done)=>{
|
||||
let ThemedObjectBreadcrumbs = withTheme(ObjectBreadcrumbs);
|
||||
let ctrl = mount(<ThemedObjectBreadcrumbs pgAdmin={pgAdmin} />);
|
||||
setTimeout(()=>{
|
||||
ctrl.update();
|
||||
expect(ctrl.find('ForwardRef(AccountTreeIcon)').length).toBe(0);
|
||||
done();
|
||||
}, 0);
|
||||
});
|
||||
|
||||
it('hovered object with comment', (done)=>{
|
||||
let ThemedObjectBreadcrumbs = withTheme(ObjectBreadcrumbs);
|
||||
let ctrl = mount(<ThemedObjectBreadcrumbs pgAdmin={pgAdmin} />);
|
||||
setTimeout(()=>{
|
||||
ctrl.update();
|
||||
pgAdmin.Browser.Events.trigger('pgadmin-browser:tree:hovered', {
|
||||
_metadata: {
|
||||
data: {
|
||||
description: 'some description'
|
||||
}
|
||||
},
|
||||
}, {
|
||||
_type: 'object',
|
||||
});
|
||||
setTimeout(()=>{
|
||||
ctrl.update();
|
||||
expect(ctrl.find('ForwardRef(AccountTreeIcon)').length).toBe(1);
|
||||
expect(ctrl.find('ForwardRef(CommentIcon)').length).toBe(1);
|
||||
done();
|
||||
}, 500);
|
||||
}, 500);
|
||||
});
|
||||
|
||||
it('hovered object with no comment', (done)=>{
|
||||
let ThemedObjectBreadcrumbs = withTheme(ObjectBreadcrumbs);
|
||||
let ctrl = mount(<ThemedObjectBreadcrumbs pgAdmin={pgAdmin} />);
|
||||
setTimeout(()=>{
|
||||
ctrl.update();
|
||||
pgAdmin.Browser.Events.trigger('pgadmin-browser:tree:hovered', {
|
||||
_metadata: {
|
||||
data: {}
|
||||
},
|
||||
}, {
|
||||
_type: 'object',
|
||||
});
|
||||
setTimeout(()=>{
|
||||
ctrl.update();
|
||||
expect(ctrl.find('ForwardRef(AccountTreeIcon)').length).toBe(1);
|
||||
expect(ctrl.find('ForwardRef(CommentIcon)').length).toBe(0);
|
||||
done();
|
||||
}, 500);
|
||||
}, 500);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user