pgadmin4/web/regression/javascript/genericFunctions.jsx
Aditya Toshniwal dcfef154ce
- Set the browser target to ES6 and reduce the JS bundle size considerably
- Upgrade ESLint to v9.x and migrate the .eslintrc.js file to make it work
2024-07-04 18:25:47 +05:30

100 lines
3.0 KiB
JavaScript

/////////////////////////////////////////////////////////////
//
// pgAdmin 4 - PostgreSQL Tools
//
// Copyright (C) 2013 - 2024, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
//////////////////////////////////////////////////////////////
import React from 'react';
import pgAdmin from 'sources/pgadmin';
import SchemaView from '../../pgadmin/static/js/SchemaView';
import pgWindow from 'sources/window';
import fakePgAdmin from './fake_pgadmin';
import Theme from '../../pgadmin/static/js/Theme';
import { PgAdminContext } from '../../pgadmin/static/js/BrowserComponent';
import { act, render } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
export function withBrowser(WrappedComp) {
return (props)=>{
return <Theme>
<PgAdminContext.Provider value={fakePgAdmin}>
<WrappedComp {...props}/>
</PgAdminContext.Provider>
</Theme>;
};
}
const SchemaViewWithBrowser = withBrowser(SchemaView);
export const getEditView = async (schemaObj, getInitData)=> {
await act(async ()=>{
return render(<SchemaViewWithBrowser
formType='dialog'
schema={schemaObj}
getInitData={getInitData}
viewHelperProps={{
mode: 'edit',
}}
onSave={()=>{/*This is intentional (SonarQube)*/}}
onClose={()=>{/*This is intentional (SonarQube)*/}}
onHelp={()=>{/*This is intentional (SonarQube)*/}}
onEdit={()=>{/*This is intentional (SonarQube)*/}}
onDataChange={()=>{/*This is intentional (SonarQube)*/}}
confirmOnCloseReset={false}
hasSQL={false}
disableSqlHelp={false}
disableDialogHelp={false}
/>);
});
};
export const getCreateView = async (schemaObj)=> {
let ctrl;
const user = userEvent.setup();
await act(async ()=>{
ctrl = render(<SchemaViewWithBrowser
formType='dialog'
schema={schemaObj}
viewHelperProps={{
mode: 'create',
}}
onSave={()=>{/*This is intentional (SonarQube)*/}}
onClose={()=>{/*This is intentional (SonarQube)*/}}
onHelp={()=>{/*This is intentional (SonarQube)*/}}
onEdit={()=>{/*This is intentional (SonarQube)*/}}
onDataChange={()=>{/*This is intentional (SonarQube)*/}}
confirmOnCloseReset={false}
hasSQL={false}
disableSqlHelp={false}
disableDialogHelp={false}
/>);
});
return {ctrl, user};
};
export const getPropertiesView = async (schemaObj, getInitData)=> {
await act(async ()=>{
return render(<SchemaViewWithBrowser
formType='tab'
schema={schemaObj}
getInitData={getInitData}
viewHelperProps={{
mode: 'properties',
}}
onHelp={()=>{/*This is intentional (SonarQube)*/}}
onEdit={()=>{/*This is intentional (SonarQube)*/}}
/>);
});
};
export const addNewDatagridRow = async (user, ctrl)=>{
await user.click(ctrl.container.querySelector('[data-test="add-row"] button'));
};
export const genericBeforeEach = ()=> {
pgWindow.pgAdmin = pgAdmin;
};