Files
Michael TelatynskiandGitHub 4aa1a3549e Enable oxlint restriction ruleset (#34307)
* Remove stale max-len disablements

* Remove stale camelCase & naming-convention disablements

* Remove stale ban-ts-comment disablements

* Remove stale no-var disablements

* Remove stale no-empty-property disablements

* Remove stale react rule disablements

* Remove stale no-constant-condition disablements

* Remove stale no-unused-vars disablements

* Remove stale disablements for disabled rules

* fixup camelcase

* Remove dead code

* Tidy code

* Tweak oxlint config

* Use oxlint to apply jsx/tsx extension consistently

* Fix import

* Fix imports

* Rename affected snapshots

* Update more imports

* Enable restriction ruleset

* Make code comply with new rules

* Make code comply with react/button-has-type

* Make code comply with typescript/non-nullable-type-assertion-style

* Comply with node/no-process-env

* Comply with unicorn/prefer-node-protocol

* Comply with unicorn/import-style

* Comply with unicorn/no-process-exit

* Comply with no-proto

* Comply with node/handle-callback-err

* Comply with import/no-commonjs

* Comply with node/no-path-concat

* Comply with unicorn/no-length-as-slice-end

* Comply with unicorn/no-document-cookie

* Comply with unicorn/prefer-module

* Comply with typescript/prefer-literal-enum-member

* Comply with jsx-a11y/anchor-ambiguous-text

* Tweak oxlint config

* Fix resolves

* Iterate

* Iterate

* Iterate

* Iterate

* Iterate

* Iterate

* Iterate
2026-08-04 09:15:07 +00:00

60 lines
1.6 KiB
TypeScript

/*
* Copyright 2025 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
* Please see LICENSE files in the repository root for full details.
*/
import EventEmitter from "node:events";
import { SimpleObservable } from "matrix-widget-api";
import { PlaybackState } from "../../../src/audio/Playback";
import { vi } from "../../setup/adapter.ts";
/**
* A mocked playback implementation for testing purposes.
* It simulates a playback with a fixed size and allows state changes.
*/
export class MockedPlayback extends EventEmitter {
public sizeBytes = 8000;
private waveformObservable = new SimpleObservable<number[]>();
public liveData = new SimpleObservable<number[]>();
public constructor(
public currentState: PlaybackState,
public durationSeconds: number,
public timeSeconds: number,
) {
super();
}
public setState(state: PlaybackState): void {
this.currentState = state;
this.emit("update", state);
}
public get isPlaying(): boolean {
return this.currentState === PlaybackState.Playing;
}
public get clockInfo() {
return {
liveData: this.liveData,
populatePlaceholdersFrom: () => undefined,
};
}
public get waveform(): number[] {
return [];
}
public get waveformData(): SimpleObservable<number[]> {
return this.waveformObservable;
}
public prepare = vi.fn().mockResolvedValue(undefined);
public skipTo = vi.fn();
public toggle = vi.fn();
public destroy = vi.fn().mockResolvedValue(undefined);
}