94 lines
2.3 KiB
JavaScript
94 lines
2.3 KiB
JavaScript
const { _electron: electron } = require('@playwright/test')
|
|
const {
|
|
test: it
|
|
} = require('@playwright/test')
|
|
const { expect } = require('./common/expect')
|
|
const delay = require('./common/wait')
|
|
const log = require('./common/log')
|
|
const appOptions = require('./common/app-options')
|
|
const extendClient = require('./common/client-extend')
|
|
const { describe } = it
|
|
it.setTimeout(100000)
|
|
|
|
describe('layouts', function () {
|
|
it('should create new tabs properly in different layouts', async function () {
|
|
const electronApp = await electron.launch(appOptions)
|
|
const client = await electronApp.firstWindow()
|
|
extendClient(client, electronApp)
|
|
await delay(3500)
|
|
const splitMapDesc = {
|
|
c1: 'single',
|
|
c2: 'twoColumns',
|
|
c3: 'threeColumns',
|
|
r2: 'twoRows',
|
|
r3: 'threeRows',
|
|
c2x2: 'grid2x2',
|
|
c1r2: 'twoRowsRight',
|
|
r1c2: 'twoColumnsBottom'
|
|
}
|
|
|
|
const splitConfig = {
|
|
c1: {
|
|
children: 1,
|
|
handle: 0
|
|
},
|
|
c2: {
|
|
children: 2,
|
|
handle: 1
|
|
},
|
|
c3: {
|
|
children: 3,
|
|
handle: 2
|
|
},
|
|
r2: {
|
|
children: 2,
|
|
handle: 1
|
|
},
|
|
r3: {
|
|
children: 3,
|
|
handle: 2
|
|
},
|
|
c2x2: {
|
|
children: 4,
|
|
handle: 3
|
|
},
|
|
c1r2: {
|
|
children: 3,
|
|
handle: 2
|
|
},
|
|
r1c2: {
|
|
children: 3,
|
|
handle: 2
|
|
}
|
|
}
|
|
|
|
// Test helper function
|
|
async function testLayout (layoutType, expectedTabCount) {
|
|
const desc = splitMapDesc[layoutType]
|
|
log(`Testing ${desc} layout`)
|
|
await client.evaluate((layoutType) => {
|
|
window.store.setLayout(layoutType)
|
|
}, layoutType)
|
|
await delay(1000)
|
|
const layoutAfterCount = await client.evaluate(() => {
|
|
return document.querySelectorAll('.layout-item').length
|
|
})
|
|
expect(layoutAfterCount).equal(expectedTabCount)
|
|
}
|
|
|
|
// Test each layout type
|
|
const layouts = Object.keys(splitMapDesc).reverse()
|
|
for (const layout of layouts) {
|
|
await testLayout(layout, splitConfig[layout].children)
|
|
}
|
|
let dd = await client.countElem('.ant-dropdown')
|
|
expect(dd).equal(0)
|
|
await client.click('.tabs .layout-dd-icon')
|
|
await delay(500)
|
|
dd = await client.countElem('.ant-dropdown')
|
|
expect(dd).equal(1)
|
|
|
|
await electronApp.close().catch(console.log)
|
|
})
|
|
})
|