test(studio): a Studio save carries its revision, and the layers foot is drawn with its selection

This commit is contained in:
Maurice
2026-10-23 20:11:03 +02:00
parent 2f4644d434
commit 02a12ce918
3 changed files with 12 additions and 4 deletions
@@ -141,8 +141,8 @@ describe('the layers panel', () => {
});
it('groups and ungroups the selection from its foot, and says when the page is empty', () => {
render(<StudioLayersPanel t={t} />);
store().select(['a', 't']);
render(<StudioLayersPanel t={t} />);
fireEvent.click(screen.getByText('journey.studio.layers.groupAction'));
expect(el('a').group).toBeDefined();
fireEvent.click(screen.getByText('journey.studio.layers.ungroup'));
@@ -1,6 +1,7 @@
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
import { act, renderHook } from '@testing-library/react'
import type { BookDocument, BookRecord } from '@trek/shared'
import { BOOK_SCHEMA_REV } from '@trek/shared'
/**
* Autosaving a Studio book (#1973).
@@ -852,12 +853,14 @@ describe('a book a newer Studio saved', () => {
})
/* A book of today goes out exactly as it went out before the revision existed. */
it('FE-STUDIO-REV-006: sends a book of today without a revision in it', async () => {
it('FE-STUDIO-REV-006: stamps a book with the revision this Studio writes, and none while that is 1', async () => {
const { result } = await mount()
act(() => { result.current.queueSave(doc('a'), 'T') })
await tick()
expect(api.saveBook.mock.calls[0][1].document).not.toHaveProperty('schemaRev')
const sent = api.saveBook.mock.calls[0][1].document
if (BOOK_SCHEMA_REV > 1) expect(sent.schemaRev).toBe(BOOK_SCHEMA_REV)
else expect(sent).not.toHaveProperty('schemaRev')
})
})
@@ -566,7 +566,12 @@ describe('editBook', () => {
const [tool, studio] = await Promise.all([
catchDomainError(() => books.editBook(journey.id, user.id, edited('tool'), { expectedVersion: 1 })),
books.saveBook(journey.id, user.id, { title: 'T', document: doc('studio'), baseVersion: 1 }),
// The Studio stamps what it saves with its revision, as the book tools do (useBookStore).
books.saveBook(journey.id, user.id, {
title: 'T',
document: { ...doc('studio'), schemaRev: BOOK_SCHEMA_REV },
baseVersion: 1,
}),
]);
const toolLost = tool instanceof DomainError && tool.getStatus() === 409;