/**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import { describe, expect, it } from 'vitest';
import { ElementProxy } from '../ElementProxy';
describe('ElementProxy', () => {
it('proxies element methods and properties', () => {
const el = document.createElement('div');
const proxy: any = new ElementProxy(el);
proxy.setAttribute('data-x', '1');
expect(el.getAttribute('data-x')).toBe('1');
proxy.id = 'abc';
expect(el.id).toBe('abc');
expect(proxy.id).toBe('abc');
});
it('sanitizes innerHTML/outerHTML setters', () => {
const el = document.createElement('div');
const proxy: any = new ElementProxy(el);
proxy.innerHTML = 'ok';
expect(proxy.innerHTML).toContain('ok');
expect(proxy.innerHTML).not.toContain('onerror');
const container = document.createElement('div');
container.appendChild(el);
proxy.outerHTML = '