@instructure/ui-test-utils
Version:
A UI testing library made by Instructure Inc.
165 lines (154 loc) • 4.16 kB
text/typescript
/*
* The MIT License (MIT)
*
* Copyright (c) 2015 - present Instructure, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
import { locator } from '@instructure/ui-test-locator'
import {
accessible,
parseQueryArguments,
findWithLabel,
findWithText,
findWithTitle,
findByQuery,
findAllByQuery,
matchesSelector,
querySelectorAll,
querySelector,
firstOrNull,
wrapQueryResult,
find,
findAll,
findAllFrames,
findFrame,
debug
} from '@instructure/ui-test-queries'
import {
mount,
unmount,
stub,
spy,
viewport,
match
} from '@instructure/ui-test-sandbox'
import type {
SinonStub,
SinonSpy,
SinonSandbox
} from '@instructure/ui-test-sandbox'
import './utils/shims'
import { waitForExpect } from './utils/waitForExpect'
import { expect } from './utils/expect'
import { generateA11yTests } from './utils/generateA11yTests'
import {
generateComponentExamples,
StoryConfig,
Example,
ExamplesPage
} from './utils/generateComponentExamples'
import { generatePropCombinations } from './utils/generatePropCombinations'
// these are defined in assertions.ts
declare global {
// eslint-disable-next-line @typescript-eslint/no-namespace
export namespace Chai {
interface Assertion {
// @ts-expect-error This is intentionally overridden in Assertions.ts
readonly contain: Assertion
exactly(expected: number): Assertion
text(expected: string): void
className(expected: string): void
descendants(expected: string): void
children(expected: string): void
ancestors(expected: string): void
parents(expected: string): void
attribute(
expectedAttribute: string,
expectedAttributeValue?: string
): void
style(expected: string, expectedAttributeValue?: string | number): void
bounds(expected: string, expectedAttributeValue?: string | number): void
tagName(expected: string): void
id(expected: string): void
visible(): boolean
clickable(): boolean
focus(): boolean
focused(): boolean
focusable(): boolean
tabbable(): boolean
checked(): boolean
selected(): boolean
disabled(): boolean
enabled(): boolean
readonly(): boolean
accessible(): boolean
role(expected: string): void
title(expected: string): void
value(expected: string): void
label(expected: string): void
}
}
}
export type {
StoryConfig,
Example,
ExamplesPage,
SinonStub,
SinonSpy,
SinonSandbox
}
// aliases for backwards compat:
const within = wrapQueryResult
const wrap = wrapQueryResult
const wait = waitForExpect
export {
generateComponentExamples,
generatePropCombinations,
generateA11yTests,
viewport,
accessible,
parseQueryArguments,
findWithLabel,
findWithText,
findWithTitle,
findByQuery,
findAllByQuery,
matchesSelector,
querySelectorAll,
querySelector,
locator,
firstOrNull,
within,
wrapQueryResult,
wrap,
waitForExpect,
wait,
expect,
mount,
unmount,
stub,
spy,
match,
find,
findAll,
findAllFrames,
findFrame,
debug
}