52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
import { createRoot, createSignal } from 'solid-js'
|
|
import { isServer } from 'solid-js/web'
|
|
import { describe, expect, it } from 'vitest'
|
|
import { Hello, createHello } from '../src'
|
|
|
|
describe('environment', () => {
|
|
it('runs on client', () => {
|
|
expect(typeof window).toBe('object')
|
|
expect(isServer).toBe(false)
|
|
})
|
|
})
|
|
|
|
describe('createHello', () => {
|
|
it('Returns a Hello World signal', () =>
|
|
createRoot(dispose => {
|
|
const [hello] = createHello()
|
|
expect(hello()).toBe('Hello World!')
|
|
dispose()
|
|
}))
|
|
|
|
it('Changes the hello target', () =>
|
|
createRoot(dispose => {
|
|
const [hello, setHello] = createHello()
|
|
setHello('Solid')
|
|
expect(hello()).toBe('Hello Solid!')
|
|
dispose()
|
|
}))
|
|
})
|
|
|
|
describe('Hello', () => {
|
|
it('renders a hello component', () => {
|
|
createRoot(() => {
|
|
const container = (<Hello />) as HTMLDivElement
|
|
expect(container.outerHTML).toBe('<div>Hello World!</div>')
|
|
})
|
|
})
|
|
|
|
it('changes the hello target', () =>
|
|
createRoot(dispose => {
|
|
const [to, setTo] = createSignal('Solid')
|
|
const container = (<Hello to={to()} />) as HTMLDivElement
|
|
expect(container.outerHTML).toBe('<div>Hello Solid!</div>')
|
|
setTo('Tests')
|
|
|
|
// rendering is async
|
|
queueMicrotask(() => {
|
|
expect(container.outerHTML).toBe('<div>Hello Tests!</div>')
|
|
dispose()
|
|
})
|
|
}))
|
|
})
|