删掉小红书导出 hook 里无人调用的 runExport
- useXhsMinitoolExport 移除 runExport 与返回项,构建只经 packageAll 到达 buildOnce - 测试改用 packageAll 驱动构建路径,删掉 runExport 的 mock 与断言
This commit is contained in:
+1
-13
@@ -316,7 +316,7 @@ export function useXhsMinitoolExport({
|
||||
/**
|
||||
* 跑一次构建:每次都重新跑脚本、重新产出 zip,没有"上次的产物还能用"这条捷径。
|
||||
*
|
||||
* 不碰 `running`:调用方决定这次构建是一次独立导出,还是「打包」里保存之后的收尾。
|
||||
* 不碰 `running`:由调用方(`packageAll`)决定这次构建在哪一层持锁。
|
||||
*/
|
||||
const buildOnce = useCallback(async (): Promise<void> => {
|
||||
if (!projectPath) return;
|
||||
@@ -340,17 +340,6 @@ export function useXhsMinitoolExport({
|
||||
}
|
||||
}, [projectPath, throwToErrorPool]);
|
||||
|
||||
/** 只重新构建:失败卡片上的「重试」走这里,不夹带保存。 */
|
||||
const runExport = useCallback(async (): Promise<void> => {
|
||||
if (!projectPath) return;
|
||||
setRunning(true);
|
||||
try {
|
||||
await buildOnce();
|
||||
} finally {
|
||||
setRunning(false);
|
||||
}
|
||||
}, [projectPath, buildOnce]);
|
||||
|
||||
/**
|
||||
* 打包:先**现场复算**「有没有脚本」,再冲掉没保存的输入,最后跑构建。
|
||||
*
|
||||
@@ -497,7 +486,6 @@ export function useXhsMinitoolExport({
|
||||
adaptPromptDismissed,
|
||||
updateField,
|
||||
resolveConflict,
|
||||
runExport,
|
||||
packageAll,
|
||||
adapt,
|
||||
repair,
|
||||
|
||||
@@ -568,7 +568,6 @@ describe('面板左半', () => {
|
||||
expect(screen.queryByRole('button', { name: '重试' })).toBeNull();
|
||||
fireEvent.click(screen.getByRole('button', { name: '关闭' }));
|
||||
expect(minitool.dismissFailure).toHaveBeenCalledTimes(1);
|
||||
expect(minitool.runExport).not.toHaveBeenCalled();
|
||||
expect(minitool.repair).not.toHaveBeenCalled();
|
||||
expect(minitool.adapt).not.toHaveBeenCalled();
|
||||
}
|
||||
@@ -990,10 +989,10 @@ describe('状态 hook', () => {
|
||||
);
|
||||
await waitFor(() => expect(result.current.form).toEqual(FORM));
|
||||
|
||||
await expect(result.current.runExport()).rejects.toBe(transport);
|
||||
await expect(result.current.packageAll()).rejects.toBe(transport);
|
||||
expect(result.current.failure).toBeNull();
|
||||
// 同一个故障只抛一次:轮询每 2 秒重读一次,不能让错误池的 count 变成轮询次数。
|
||||
await expect(result.current.runExport()).resolves.toBeUndefined();
|
||||
await expect(result.current.packageAll()).resolves.toBeUndefined();
|
||||
});
|
||||
|
||||
it('宿主侧事实故障先给卡片、再把同一个故障抛一次', async () => {
|
||||
@@ -1017,7 +1016,7 @@ describe('状态 hook', () => {
|
||||
|
||||
// 卡片照常给现场,同时原样抛出(真实 WebView 里由全局 handler 结算进错误池)。
|
||||
await act(async () => {
|
||||
await expect(result.current.runExport()).rejects.toBeInstanceOf(Error);
|
||||
await expect(result.current.packageAll()).rejects.toBeInstanceOf(Error);
|
||||
});
|
||||
// 面板留下的就是宿主那个原始错误,用户那句话是渲染时从变体推的。
|
||||
expect(result.current.failure).toEqual({
|
||||
@@ -1025,7 +1024,7 @@ describe('状态 hook', () => {
|
||||
cause: '项目根不可用:找不到目录',
|
||||
});
|
||||
await act(async () => {
|
||||
await expect(result.current.runExport()).resolves.toBeUndefined();
|
||||
await expect(result.current.packageAll()).resolves.toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1165,7 +1164,7 @@ describe('状态 hook', () => {
|
||||
await waitFor(() => expect(result.current.form).toEqual(FORM));
|
||||
|
||||
await act(async () => {
|
||||
await result.current.runExport();
|
||||
await result.current.packageAll();
|
||||
});
|
||||
expect(result.current.failure).toEqual({
|
||||
type: 'commandFailed',
|
||||
@@ -1206,7 +1205,7 @@ describe('状态 hook', () => {
|
||||
await waitFor(() => expect(result.current.form).toEqual(FORM));
|
||||
|
||||
await act(async () => {
|
||||
await result.current.runExport();
|
||||
await result.current.packageAll();
|
||||
});
|
||||
expect(result.current.failure).toEqual({
|
||||
type: 'saveConflict',
|
||||
@@ -1246,7 +1245,6 @@ function fakeMinitool(
|
||||
adaptPromptDismissed: false,
|
||||
updateField: vi.fn(),
|
||||
resolveConflict: vi.fn(),
|
||||
runExport: vi.fn(async () => undefined),
|
||||
packageAll: vi.fn(async () => undefined),
|
||||
adapt: vi.fn(),
|
||||
repair: vi.fn(),
|
||||
|
||||
Reference in New Issue
Block a user