kalisio/kApp

View on GitHub
test/layout.test.mjs

Summary

Maintainability
Test Coverage
/* eslint-disable no-unused-expressions */

import chai, { util, expect } from 'chai'
import chailint from 'chai-lint'
import { core } from '@kalisio/kdk/test.client.js'

const suite = 'layout'

describe(`suite:${suite}`, () => {
  let runner
  let page
  let user
  const placements = ['left', 'top', 'right', 'bottom']

  before(async () => {
    chailint(chai, util)

    runner = new core.Runner(suite, {
      appName: 'kapp',
      browser: {
        slowMo: 2
      },
      localStorage: {
        'k-app-welcome': false,
        'k-app-install': false
      },
      lang: 'fr-FR'
    })
    page = await runner.start()
    user = {
      email: 'kalisio@kalisio.xyz',
      password: 'Pass;word1'
    }
    await core.login(page, user)
  })

  it('check-header-footer', async () => {
    expect(await core.isHeaderVisible(page)).beFalse()
    expect(await core.isFooterVisible(page)).beFalse()
    await core.clickAction(page, 'toggle-header')
    expect(await core.isHeaderVisible(page)).beTrue()
    await core.clickAction(page, 'toggle-footer')
    expect(await core.isFooterVisible(page)).beTrue()
    await core.clickAction(page, 'toggle-header')
    expect(await core.isHeaderVisible(page)).beFalse()
  })

  it('check-panes', async () => {
    await core.clickPaneAction(page, 'top', 'panes')
    expect(await core.isPaneVisible(page, 'top')).beTrue()
    expect(await core.isPaneVisible(page, 'right')).beFalse()
    expect(await core.isPaneVisible(page, 'bottom')).beFalse()
    expect(await core.isPaneVisible(page, 'left')).beFalse()
    await core.clickAction(page, 'toggle-top-pane')
    expect(await core.isPaneVisible(page, 'top')).beFalse()
    await core.clickAction(page, 'toggle-right-pane')
    expect(await core.isPaneVisible(page, 'right')).beTrue()
    await core.clickAction(page, 'toggle-bottom-pane')
    expect(await core.isPaneVisible(page, 'bottom')).beTrue()
    await core.clickAction(page, 'toggle-left-pane')
    expect(await core.isPaneVisible(page, 'left')).beTrue()
  })

  it('check-windows', async () => {
    await core.clickPaneAction(page, 'top', 'windows')
    for (const placement of placements) {
      expect(await core.isWindowVisible(page, placement)).beFalse()
    }
    for (const placement of placements) {
      await core.clickAction(page, `toggle-${placement}-window`)
      expect(await core.isWindowVisible(page, placement)).beTrue()
      const isFloating = await core.isWindowFloating(page, placement)
      if (isFloating) await core.pinWindow(page, placement)
      expect(await core.isWindowPinned(page, placement)).beTrue()
      await core.maximizeWindow(page, placement)
      expect(await core.isWindowMaximized(page, placement)).beTrue()
      await core.restoreWindow(page, placement)
      expect(await core.isWindowPinned(page, placement)).beTrue()
      await core.closeWindow(page, placement)
      expect(await core.isWindowVisible(page, placement)).beFalse()
    }
  })

  after(async () => {
    await core.logout(page)
    await runner.stop()
  })
})