(
config?: Partial<TaskConfig<unknown[], string>>
)
| 41 | } |
| 42 | |
| 43 | const defineTestElement = ( |
| 44 | config?: Partial<TaskConfig<unknown[], string>> |
| 45 | ) => { |
| 46 | class A extends ReactiveElement { |
| 47 | task: Task; |
| 48 | |
| 49 | @property() |
| 50 | a = 'a'; |
| 51 | @property() |
| 52 | b = 'b'; |
| 53 | @property() |
| 54 | c?: string; |
| 55 | |
| 56 | resolveTask!: () => void; |
| 57 | rejectTask!: (error: string | undefined) => void; |
| 58 | signal?: AbortSignal; |
| 59 | |
| 60 | taskValue?: string; |
| 61 | renderedStatus?: string; |
| 62 | |
| 63 | constructor() { |
| 64 | super(); |
| 65 | const taskConfig = { |
| 66 | task: (args: readonly unknown[], options?: TaskFunctionOptions) => |
| 67 | new Promise((resolve, reject) => { |
| 68 | this.rejectTask = (error) => reject(error); |
| 69 | this.resolveTask = () => resolve(args.join(',')); |
| 70 | const signal = (this.signal = options?.signal); |
| 71 | if (signal?.aborted) { |
| 72 | reject(signal.reason); |
| 73 | } else { |
| 74 | signal?.addEventListener('abort', () => { |
| 75 | reject(signal.reason); |
| 76 | }); |
| 77 | } |
| 78 | }), |
| 79 | }; |
| 80 | Object.assign(taskConfig, config); |
| 81 | this.task = new Task(this, taskConfig); |
| 82 | } |
| 83 | |
| 84 | override update(changedProperties: PropertyValues): void { |
| 85 | super.update(changedProperties); |
| 86 | this.taskValue = (this.task.value as string) ?? this.task.error; |
| 87 | this.task.render({ |
| 88 | initial: () => (this.renderedStatus = 'initial'), |
| 89 | pending: () => (this.renderedStatus = 'pending'), |
| 90 | complete: (value: unknown) => (this.renderedStatus = value as string), |
| 91 | error: (error: unknown) => (this.renderedStatus = error as string), |
| 92 | }); |
| 93 | } |
| 94 | } |
| 95 | customElements.define(generateElementName(), A); |
| 96 | return A; |
| 97 | }; |
| 98 | |
| 99 | const renderElement = async (el: TestElement) => { |
| 100 | container.appendChild(el); |
no test coverage detected
searching dependent graphs…