Ctrl K
ComunidadGuías…

frontend/test/management.test.ts

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { describe, expect, it } from 'vitest';
import { cleanupSkeletonHtml, SCAN_CARD_TEXT } from '../src/management';

describe('数据管理首屏', () => {
  const skeleton = () => {
    const root = document.createElement('div');
    root.innerHTML = cleanupSkeletonHtml();
    return root;
  };

  it('日常扫描立即呈现,其余操作只展示分组入口', () => {
    const root = skeleton();
    expect(root.querySelector('#libraryProcessing p')?.textContent).toBe(SCAN_CARD_TEXT);
    expect([...root.querySelectorAll('h2')].map(heading => heading.textContent))
      .toEqual(['待处理事项', '整理与维护', '清理与删除']);
    expect(root.querySelector('#mediaRepair, #organize, #link-manager, #resource-sync, table')).toBeNull();
    expect(root.querySelector('#libraryProcessing footer > a')?.getAttribute('href')).toBe('/sources');
  });

  it('扫描按钮保留最终尺寸与变体,在数据就绪前不能操作', () => {
    const root = skeleton();
    expect(root.querySelector('[inert]')).not.toBeNull();
    const split = root.querySelector('#libraryProcessing [data-split-button]')!;
    expect(split.getAttribute('data-variant')).toBe('primary');
    expect(split.querySelector('button:last-child use')?.getAttribute('href')).toBe('#i-chevron-down');
    expect(root.querySelector('[aria-label="媒体库"]')?.getAttribute('aria-disabled')).toBe('true');
    for (const button of root.querySelectorAll('footer button')) {
      expect(button.hasAttribute('disabled')).toBe(true);
      expect(button.hasAttribute('data-skeleton-action')).toBe(true);
    }
  });
});