next.js/test/e2e/app-dir/next-dynamic-css/next-dynamic-css.test.ts
next-dynamic-css.test.ts76 lines2.4 KB
import { nextTestSetup } from 'e2e-utils'

describe('next-dynamic-css', () => {
  const { next, isNextDev } = nextTestSetup({
    files: __dirname,
  })

  it('should have correct order of styles between global and css modules', async () => {
    const browser = await next.browser('/page')
    expect(await browser.waitForElementByCss('#server').text()).toBe(
      'Hello Server'
    )

    expect(
      await browser.elementByCss('#server').getComputedCss('background-color')
    ).toBe('rgb(0, 128, 0)')
    expect(await browser.elementByCss('#server').getComputedCss('color')).toBe(
      'rgb(0, 0, 0)'
    )
  })

  if (isNextDev) {
    // TODO Fix order of styling in development
    it.todo(
      'should have correct order of styles on client component that is sharing styles with next/dynamic (TODO)'
    )
  } else {
    it('should have correct order of styles on client component that is sharing styles with next/dynamic', async () => {
      const browser = await next.browser('/page')
      expect(await browser.waitForElementByCss('#inner2').text()).toBe(
        'Hello Inner 2'
      )

      expect(
        await browser.elementByCss('#inner2').getComputedCss('background-color')
      ).toBe('rgb(0, 128, 0)')
      expect(
        await browser.elementByCss('#inner2').getComputedCss('color')
      ).toBe('rgb(0, 0, 0)')
    })
  }

  it('should have correct order of styles on next/dynamic loaded component', async () => {
    const browser = await next.browser('/page')
    expect(await browser.waitForElementByCss('#component').text()).toBe(
      'Hello Component'
    )

    expect(
      await browser
        .elementByCss('#component')
        .getComputedCss('background-color')
    ).toBe('rgb(0, 128, 0)')
    expect(
      await browser.elementByCss('#component').getComputedCss('color')
    ).toBe('rgb(0, 0, 0)')
  })

  it('should have correct order of global styles between layout and pages', async () => {
    const browser = await next.browser('/page')
    expect(await browser.waitForElementByCss('#global').text()).toBe(
      'Hello Global'
    )

    expect(
      await browser.elementByCss('#global').getComputedCss('background-color')
    ).toBe('rgba(0, 0, 0, 0)')
    expect(await browser.elementByCss('#global').getComputedCss('color')).toBe(
      'rgb(0, 0, 0)'
    )
    expect(
      await browser.elementByCss('body').getComputedCss('background-color')
    ).toBe('rgb(255, 255, 255)')
  })
})
Quest for Codev2.0.0
/
SIGN IN