fix(build): migrate smart config setup and align TypeScript compatibility updates
This commit is contained in:
149
test/test.chromium.ts
Normal file
149
test/test.chromium.ts
Normal file
@@ -0,0 +1,149 @@
|
||||
import { expect, tap } from '@git.zone/tstest/tapbundle';
|
||||
|
||||
import * as socialioCatalog from '../ts_web/index.js';
|
||||
|
||||
tap.test('render combox component', async () => {
|
||||
// Create and add combox
|
||||
const combox = new socialioCatalog.SioCombox();
|
||||
combox.style.position = 'relative';
|
||||
combox.style.width = '800px';
|
||||
combox.style.height = '600px';
|
||||
document.body.appendChild(combox);
|
||||
|
||||
await combox.updateComplete;
|
||||
|
||||
expect(combox).toBeInstanceOf(socialioCatalog.SioCombox);
|
||||
|
||||
// Check that the component rendered its content
|
||||
const container = combox.shadowRoot.querySelector('.container');
|
||||
expect(container).toBeTruthy();
|
||||
|
||||
const conversationSelector = combox.shadowRoot.querySelector('sio-conversation-selector');
|
||||
expect(conversationSelector).toBeTruthy();
|
||||
|
||||
const conversationView = combox.shadowRoot.querySelector('sio-conversation-view');
|
||||
expect(conversationView).toBeTruthy();
|
||||
|
||||
console.log('Combox component rendered successfully with all main elements');
|
||||
|
||||
document.body.removeChild(combox);
|
||||
});
|
||||
|
||||
tap.test('render fab component', async () => {
|
||||
// Create and add fab
|
||||
const fab = new socialioCatalog.SioFab();
|
||||
document.body.appendChild(fab);
|
||||
|
||||
await fab.updateComplete;
|
||||
expect(fab).toBeInstanceOf(socialioCatalog.SioFab);
|
||||
|
||||
// Check main elements
|
||||
const mainbox = fab.shadowRoot.querySelector('#mainbox');
|
||||
expect(mainbox).toBeTruthy();
|
||||
|
||||
console.log('FAB component rendered successfully');
|
||||
|
||||
document.body.removeChild(fab);
|
||||
});
|
||||
|
||||
tap.test('render image lightbox component', async () => {
|
||||
// Create and add lightbox
|
||||
const lightbox = new socialioCatalog.SioImageLightbox();
|
||||
document.body.appendChild(lightbox);
|
||||
|
||||
await lightbox.updateComplete;
|
||||
expect(lightbox).toBeInstanceOf(socialioCatalog.SioImageLightbox);
|
||||
|
||||
// Check main elements
|
||||
const overlay = lightbox.shadowRoot.querySelector('.overlay');
|
||||
expect(overlay).toBeTruthy();
|
||||
|
||||
const container = lightbox.shadowRoot.querySelector('.container');
|
||||
expect(container).toBeTruthy();
|
||||
|
||||
// Test opening with an image
|
||||
await lightbox.open({
|
||||
url: 'https://picsum.photos/800/600',
|
||||
name: 'Test Image',
|
||||
size: 123456
|
||||
});
|
||||
|
||||
await lightbox.updateComplete;
|
||||
expect(lightbox.isOpen).toEqual(true);
|
||||
|
||||
// Test opening with a PDF
|
||||
await lightbox.open({
|
||||
url: 'data:application/pdf;base64,JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovT3V0bGluZXMgMiAwIFIKL1BhZ2VzIDMgMCBSCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBlIC9PdXRsaW5lcwovQ291bnQgMAo+PgplbmRvYmoKMyAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWzQgMCBSXQo+PgplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDMgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9Db250ZW50cyA1IDAgUgovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA2IDAgUgo+Pgo+Pgo+PgplbmRvYmoKNSAwIG9iago8PAovTGVuZ3RoIDQ0Cj4+CnN0cmVhbQpCVApxCjcwIDUwIFRECi9GMSAxMiBUZgooSGVsbG8gV29ybGQpIFRqCkVUClEKZW5kc3RyZWFtCmVuZG9iago2IDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1RpbWVzLVJvbWFuCj4+CmVuZG9iagp4cmVmCjAgNwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA3NCAwMDAwMCBuIAowMDAwMDAwMTIwIDAwMDAwIG4gCjAwMDAwMDAxNzkgMDAwMDAgbiAKMDAwMDAwMDM2NCAwMDAwMCBuIAowMDAwMDAwNDY2IDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgNwovUm9vdCAxIDAgUgo+PgpzdGFydHhyZWYKNTY1CiUlRU9G',
|
||||
name: 'test.pdf',
|
||||
type: 'application/pdf',
|
||||
size: 565
|
||||
});
|
||||
|
||||
await lightbox.updateComplete;
|
||||
|
||||
// Check that PDF viewer is rendered
|
||||
const pdfViewer = lightbox.shadowRoot.querySelector('sio-pdf-viewer');
|
||||
expect(pdfViewer).toBeTruthy();
|
||||
|
||||
console.log('Image lightbox component rendered successfully with both image and PDF support');
|
||||
|
||||
document.body.removeChild(lightbox);
|
||||
});
|
||||
|
||||
tap.test('render dropdown menu component', async () => {
|
||||
// Create and add dropdown menu
|
||||
const dropdown = new socialioCatalog.SioDropdownMenu();
|
||||
dropdown.items = [
|
||||
{ id: 'option1', label: 'Option 1', icon: 'settings' },
|
||||
{ id: 'option2', label: 'Option 2', icon: 'user' },
|
||||
{ id: 'divider', label: '', divider: true },
|
||||
{ id: 'delete', label: 'Delete', icon: 'trash', destructive: true }
|
||||
];
|
||||
document.body.appendChild(dropdown);
|
||||
|
||||
await dropdown.updateComplete;
|
||||
expect(dropdown).toBeInstanceOf(socialioCatalog.SioDropdownMenu);
|
||||
|
||||
// Check main elements
|
||||
const trigger = dropdown.shadowRoot.querySelector('.trigger');
|
||||
expect(trigger).toBeTruthy();
|
||||
|
||||
const dropdownElement = dropdown.shadowRoot.querySelector('.dropdown');
|
||||
expect(dropdownElement).toBeTruthy();
|
||||
|
||||
// Check menu items
|
||||
const menuItems = dropdown.shadowRoot.querySelectorAll('.menu-item');
|
||||
expect(menuItems.length).toEqual(3); // 3 items (excluding divider)
|
||||
|
||||
console.log('Dropdown menu component rendered successfully');
|
||||
|
||||
document.body.removeChild(dropdown);
|
||||
});
|
||||
|
||||
tap.test('render pdf viewer component', async () => {
|
||||
// Create and add PDF viewer
|
||||
const pdfViewer = new socialioCatalog.SioPdfViewer();
|
||||
pdfViewer.style.width = '600px';
|
||||
pdfViewer.style.height = '400px';
|
||||
pdfViewer.url = 'data:application/pdf;base64,JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovT3V0bGluZXMgMiAwIFIKL1BhZ2VzIDMgMCBSCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBlIC9PdXRsaW5lcwovQ291bnQgMAo+PgplbmRvYmoKMyAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWzQgMCBSXQo+PgplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDMgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9Db250ZW50cyA1IDAgUgovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA2IDAgUgo+Pgo+Pgo+PgplbmRvYmoKNSAwIG9iago8PAovTGVuZ3RoIDQ0Cj4+CnN0cmVhbQpCVApxCjcwIDUwIFRECi9GMSAxMiBUZgooSGVsbG8gV29ybGQpIFRqCkVUClEKZW5kc3RyZWFtCmVuZG9iago2IDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1RpbWVzLVJvbWFuCj4+CmVuZG9iagp4cmVmCjAgNwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA3NCAwMDAwMCBuIAowMDAwMDAwMTIwIDAwMDAwIG4gCjAwMDAwMDAxNzkgMDAwMDAgbiAKMDAwMDAwMDM2NCAwMDAwMCBuIAowMDAwMDAwNDY2IDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgNwovUm9vdCAxIDAgUgo+PgpzdGFydHhyZWYKNTY1CiUlRU9G';
|
||||
pdfViewer.fileName = 'test.pdf';
|
||||
document.body.appendChild(pdfViewer);
|
||||
|
||||
await pdfViewer.updateComplete;
|
||||
expect(pdfViewer).toBeInstanceOf(socialioCatalog.SioPdfViewer);
|
||||
|
||||
// Check main elements
|
||||
const container = pdfViewer.shadowRoot.querySelector('.container');
|
||||
expect(container).toBeTruthy();
|
||||
|
||||
// PDF viewer uses canvas after loading, not iframe
|
||||
// Just verify the component rendered correctly
|
||||
expect(pdfViewer.url).toEqual('data:application/pdf;base64,JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovT3V0bGluZXMgMiAwIFIKL1BhZ2VzIDMgMCBSCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBlIC9PdXRsaW5lcwovQ291bnQgMAo+PgplbmRvYmoKMyAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWzQgMCBSXQo+PgplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDMgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9Db250ZW50cyA1IDAgUgovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA2IDAgUgo+Pgo+Pgo+PgplbmRvYmoKNSAwIG9iago8PAovTGVuZ3RoIDQ0Cj4+CnN0cmVhbQpCVApxCjcwIDUwIFRECi9GMSAxMiBUZgooSGVsbG8gV29ybGQpIFRqCkVUClEKZW5kc3RyZWFtCmVuZG9iago2IDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL1RpbWVzLVJvbWFuCj4+CmVuZG9iagp4cmVmCjAgNwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA3NCAwMDAwMCBuIAowMDAwMDAwMTIwIDAwMDAwIG4gCjAwMDAwMDAxNzkgMDAwMDAgbiAKMDAwMDAwMDM2NCAwMDAwMCBuIAowMDAwMDAwNDY2IDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgNwovUm9vdCAxIDAgUgo+PgpzdGFydHhyZWYKNTY1CiUlRU9G');
|
||||
expect(pdfViewer.fileName).toEqual('test.pdf');
|
||||
|
||||
console.log('PDF viewer component rendered successfully');
|
||||
|
||||
document.body.removeChild(pdfViewer);
|
||||
});
|
||||
|
||||
tap.start();
|
||||
Reference in New Issue
Block a user