From 42e4503ce6e7a0b9becefa75cfe8be6f88fbf024 Mon Sep 17 00:00:00 2001 From: WuYongJie Date: Tue, 25 Aug 2026 11:12:55 +0800 Subject: [PATCH] test(auth): cover sample editor permission scope --- .../SampleProgressEditorDrawer.test.tsx | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/furniture-3d-system/src/app/intake/sample-progress/components/SampleProgressEditorDrawer.test.tsx b/furniture-3d-system/src/app/intake/sample-progress/components/SampleProgressEditorDrawer.test.tsx index 638f8fe6..f29d6b1f 100644 --- a/furniture-3d-system/src/app/intake/sample-progress/components/SampleProgressEditorDrawer.test.tsx +++ b/furniture-3d-system/src/app/intake/sample-progress/components/SampleProgressEditorDrawer.test.tsx @@ -101,6 +101,83 @@ describe('SampleProgressEditorDrawer', () => { await waitFor(() => expect(onSaved).toHaveBeenCalledWith(item)) }) + it('passes the supply-chain permission scope when editing and creating records', async () => { + fetchMock.mockResolvedValue({ + ok: true, + json: async () => ({ data: item }), + } as Response) + + const editView = render( + , + ) + + fireEvent.change(screen.getByLabelText('颜色'), { target: { value: '黑色' } }) + fireEvent.click(screen.getByRole('button', { name: '保存' })) + + await waitFor(() => expect(fetchMock).toHaveBeenCalledWith( + '/api/intake/sample-progress/sample-1?permissionScope=supply-chain', + expect.objectContaining({ method: 'PUT' }), + )) + + editView.unmount() + fetchMock.mockClear() + + render( + , + ) + + fireEvent.change(screen.getByLabelText('开款编号'), { target: { value: 'KY20260802' } }) + fireEvent.click(screen.getByRole('button', { name: '保存' })) + + await waitFor(() => expect(fetchMock).toHaveBeenCalledWith( + '/api/intake/sample-progress?permissionScope=supply-chain', + expect.objectContaining({ method: 'POST' }), + )) + }) + + it('passes the supply-chain permission scope when loading OA prefill data', async () => { + fetchMock.mockResolvedValue({ + ok: true, + json: async () => ({ + data: { + brand: '测试品牌', + designer: '设计师甲', + imageUrl: null, + oaReachedAt: null, + purchaseOwner: '采购甲', + merchandiserOwner: '跟单甲', + }, + }), + } as Response) + + render( + , + ) + + const openingCode = screen.getByLabelText('开款编号') + fireEvent.change(openingCode, { target: { value: 'KY20260803' } }) + fireEvent.blur(openingCode) + + await waitFor(() => expect(fetchMock).toHaveBeenCalledWith( + '/api/intake/sample-progress/oa-prefill?openingCode=KY20260803&permissionScope=supply-chain', + )) + }) + it('requires a reason before saving a changed due date', () => { render()