pgadmin4/web/regression/javascript/file_manager/ListView.spec.js
2024-01-01 14:13:48 +05:30

58 lines
1.5 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 { render, screen, waitFor } from '@testing-library/react';
import Theme from '../../../pgadmin/static/js/Theme';
import { FileNameEditor } from '../../../pgadmin/misc/file_manager/static/js/components/ListView';
import userEvent from '@testing-library/user-event';
describe('ListView', ()=>{
describe('FileNameEditor', ()=>{
let row = {'Filename': 'test.sql', 'Size': '1KB'},
column = {
key: 'Filename'
},
ctrlMount = (props)=>{
return render(<Theme>
<FileNameEditor
row={row}
column={column}
{...props}
/>
</Theme>);
};
it('init', async ()=>{
ctrlMount({
onRowChange: ()=>{/* test func */},
onClose: ()=>{/* test func */},
});
await waitFor(()=>{
expect(screen.getByRole('textbox').value).toEqual('test.sql');
});
});
it('keydown Tab', async ()=>{
let onCloseSpy = jest.fn();
ctrlMount({
onRowChange: ()=>{/* test func */},
onClose: onCloseSpy,
});
const user = userEvent.setup();
await user.type(screen.getByRole('textbox'), '{Tab}');
expect(onCloseSpy).toHaveBeenCalled();
});
});
});