SkillServiceTest.java 1.53 KB
package com.xly.service;

import org.junit.jupiter.api.Test;

import java.util.List;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

/** skill 文件加载:5 个技能齐全、首行为用途、正文非空、模糊名可命中。 */
class SkillServiceTest {

    private final SkillService skills = new SkillService();

    @Test
    void allFiveSkillsLoadFromClasspath() {
        List<SkillService.Skill> all = skills.all();
        assertEquals(5, all.size());
        for (String name : new String[]{"查询数据", "新建报价", "新建单据", "修改记录", "单据状态操作"}) {
            SkillService.Skill s = skills.find(name);
            assertNotNull(s, name + " 必须存在");
            assertTrue(s.brief().length() > 4, "首行=一句话用途");
            assertTrue(s.body().contains("【技能:"), "正文为技能全文");
        }
    }

    @Test
    void fuzzyNameMatches() {
        assertEquals("新建报价", skills.find("新建报价单").name(), "「新建报价单」→ 新建报价");
        assertEquals("修改记录", skills.find("修改").name());
        assertNull(skills.find("不存在的技能"));
    }

    @Test
    void indexHasOneLinePerSkill() {
        String idx = skills.indexLines();
        assertEquals(5, idx.strip().split("\n").length);
        assertTrue(idx.contains("- 新建报价:"));
    }
}