返回 slidev
presenter-resizer.spec.ts
根目录 / cypress / e2e / examples / presenter-resizer.spec.ts
1 const LAYOUT_KEY = 'slidev-presenter-layout'
2
3 function visitPresenter(layout: 1 | 2 | 3) {
4 cy.visit('/presenter', {
5 onBeforeLoad(win) {
6 win.localStorage.setItem(LAYOUT_KEY, String(layout))
7 },
8 })
9 }
10
11 context('Presenter resizer', () => {
12 it('shows proper resizer handles per layout', () => {
13 // Start with a tall viewport so layout 1 is not in wide mode.
14 cy.viewport(900, 1200)
15 visitPresenter(1)
16
17 cy.get('.note .notes-resizer').should('exist')
18 cy.get('.note .notes-row-resizer').should('exist')
19 cy.get('.next .notes-row-resizer').should('not.exist')
20 cy.get('.notes-vertical-resizer').should('not.exist')
21
22 // Switch to wide mode: unified vertical resizer should exist.
23 cy.viewport(1400, 900)
24 cy.get('.notes-vertical-resizer').should('exist')
25 cy.get('.note .notes-resizer').should('not.exist')
26
27 visitPresenter(2)
28
29 cy.get('.note .notes-resizer').should('exist')
30 cy.get('.next .notes-row-resizer').should('exist')
31 cy.get('.note .notes-row-resizer').should('not.exist')
32 cy.get('.notes-vertical-resizer').should('not.exist')
33
34 visitPresenter(3)
35
36 cy.get('.note .notes-resizer').should('not.exist')
37 cy.get('.note .notes-row-resizer').should('exist')
38 cy.get('.next .notes-row-resizer').should('not.exist')
39 cy.get('.notes-vertical-resizer').should('not.exist')
40 cy.get('.notes-vertical-resizer-left').should('exist')
41 })
42
43 it('applies CSS variables for dynamic sizing', () => {
44 visitPresenter(1)
45
46 cy.get('.grid-container')
47 .invoke('attr', 'style')
48 .then((style) => {
49 expect(style).to.include('--slidev-presenter-notes-width')
50 expect(style).to.include('--slidev-presenter-notes-row-size')
51 })
52 })
53 })
54
54 lines TYPESCRIPT