64 lines
No EOL
1.8 KiB
JavaScript
64 lines
No EOL
1.8 KiB
JavaScript
// Import the necessary dependencies for testing
|
|
const $ = require('jquery');
|
|
|
|
// Import the function to be tested
|
|
const { showPreviewPage } = require('./functions');
|
|
|
|
// Mock the necessary dependencies
|
|
jest.mock('jquery');
|
|
|
|
describe('showPreviewPage', () => {
|
|
beforeEach(() => {
|
|
// Reset the mocked jQuery functions before each test
|
|
$.post.mockReset();
|
|
$.fn.html.mockReset();
|
|
$.fn.find.mockReset();
|
|
$.fn.click.mockReset();
|
|
});
|
|
|
|
test('should show the preview page with correct vehicle data', async () => {
|
|
// Mock the vehicle data
|
|
const vehicleData = {
|
|
id: 'vehicle123',
|
|
label: 'Car',
|
|
price: 10000
|
|
};
|
|
|
|
// Mock the expected HTML elements
|
|
const expectedHTML = `
|
|
<div class="header">
|
|
<!-- ... -->
|
|
</div>
|
|
<ul class="left-side-wrap vehicle-preview">
|
|
<!-- ... -->
|
|
</ul>
|
|
<div class="rotate-vehicle vehicle-preview p-5">
|
|
<!-- ... -->
|
|
</div>
|
|
`;
|
|
|
|
// Mock the jQuery functions
|
|
$.post.mockImplementationOnce(() => {});
|
|
$.fn.html.mockImplementationOnce(function () {
|
|
return this;
|
|
});
|
|
$.fn.find.mockImplementationOnce(function () {
|
|
return this;
|
|
});
|
|
$.fn.click.mockImplementationOnce(function () {
|
|
return this;
|
|
});
|
|
|
|
// Call the function to be tested
|
|
await showPreviewPage(vehicleData);
|
|
|
|
// Verify the jQuery functions were called with the correct arguments
|
|
expect($.post).toHaveBeenCalledWith(`https://${resName}/showCarInShowroom`, JSON.stringify({ model: vehicleData.id }));
|
|
expect($.fn.html).toHaveBeenCalledWith(expectedHTML);
|
|
expect($.fn.find).toHaveBeenCalledTimes(4);
|
|
expect($.fn.click).toHaveBeenCalledTimes(4);
|
|
});
|
|
|
|
// Add more test cases for different scenarios
|
|
|
|
}); |