mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-26 10:28:46 +08:00
c05c429803
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com> Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Florian Duros <florian.duros@ormaz.fr> Co-authored-by: Kim Brose <kim.brose@nordeck.net> Co-authored-by: Florian Duros <florianduros@element.io> Co-authored-by: R Midhun Suresh <hi@midhun.dev> Co-authored-by: dbkr <986903+dbkr@users.noreply.github.com> Co-authored-by: ElementRobot <releases@riot.im> Co-authored-by: dbkr <dbkr@users.noreply.github.com> Co-authored-by: David Baker <dbkr@users.noreply.github.com> Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Co-authored-by: David Langley <davidl@element.io> Co-authored-by: Michael Weimann <michaelw@matrix.org> Co-authored-by: Timshel <Timshel@users.noreply.github.com> Co-authored-by: Sahil Silare <32628578+sahil9001@users.noreply.github.com> Co-authored-by: Will Hunt <will@half-shot.uk> Co-authored-by: Hubert Chathi <hubert@uhoreg.ca> Co-authored-by: Andrew Ferrazzutti <andrewf@element.io> Co-authored-by: Robin <robin@robin.town> Co-authored-by: Tulir Asokan <tulir@maunium.net>
75 lines
3.2 KiB
TypeScript
75 lines
3.2 KiB
TypeScript
/*
|
|
Copyright 2024 New Vector Ltd.
|
|
Copyright 2022 The Matrix.org Foundation C.I.C.
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
|
|
Please see LICENSE files in the repository root for full details.
|
|
*/
|
|
|
|
import EventEmitter from "events";
|
|
import { SimpleObservable } from "matrix-widget-api";
|
|
|
|
import { Playback, PlaybackState } from "../../src/audio/Playback";
|
|
import { PlaybackClock } from "../../src/audio/PlaybackClock";
|
|
import { UPDATE_EVENT } from "../../src/stores/AsyncStore";
|
|
import { PublicInterface } from "../@types/common";
|
|
|
|
export const createTestPlayback = (overrides: Partial<Playback> = {}): Playback => {
|
|
const eventEmitter = new EventEmitter();
|
|
|
|
return {
|
|
thumbnailWaveform: [1, 2, 3],
|
|
sizeBytes: 23,
|
|
waveform: [4, 5, 6],
|
|
waveformData: new SimpleObservable<number[]>(),
|
|
destroy: jest.fn(),
|
|
play: jest.fn(),
|
|
prepare: jest.fn(),
|
|
pause: jest.fn(),
|
|
stop: jest.fn(),
|
|
toggle: jest.fn(),
|
|
skipTo: jest.fn(),
|
|
isPlaying: false,
|
|
clockInfo: createTestPlaybackClock(),
|
|
currentState: PlaybackState.Stopped,
|
|
emit: (event: PlaybackState, ...args: any[]): boolean => {
|
|
eventEmitter.emit(event, ...args);
|
|
eventEmitter.emit(UPDATE_EVENT, event, ...args);
|
|
return true;
|
|
},
|
|
// EventEmitter
|
|
on: eventEmitter.on.bind(eventEmitter) as Playback["on"],
|
|
once: eventEmitter.once.bind(eventEmitter) as Playback["once"],
|
|
off: eventEmitter.off.bind(eventEmitter) as Playback["off"],
|
|
addListener: eventEmitter.addListener.bind(eventEmitter) as Playback["addListener"],
|
|
removeListener: eventEmitter.removeListener.bind(eventEmitter) as Playback["removeListener"],
|
|
removeAllListeners: eventEmitter.removeAllListeners.bind(eventEmitter) as Playback["removeAllListeners"],
|
|
getMaxListeners: eventEmitter.getMaxListeners.bind(eventEmitter) as Playback["getMaxListeners"],
|
|
setMaxListeners: eventEmitter.setMaxListeners.bind(eventEmitter) as Playback["setMaxListeners"],
|
|
listeners: eventEmitter.listeners.bind(eventEmitter) as Playback["listeners"],
|
|
rawListeners: eventEmitter.rawListeners.bind(eventEmitter) as Playback["rawListeners"],
|
|
listenerCount: eventEmitter.listenerCount.bind(eventEmitter) as Playback["listenerCount"],
|
|
eventNames: eventEmitter.eventNames.bind(eventEmitter) as Playback["eventNames"],
|
|
prependListener: eventEmitter.prependListener.bind(eventEmitter) as Playback["prependListener"],
|
|
prependOnceListener: eventEmitter.prependOnceListener.bind(eventEmitter) as Playback["prependOnceListener"],
|
|
liveData: new SimpleObservable<number[]>(),
|
|
durationSeconds: 31415,
|
|
timeSeconds: 3141,
|
|
...overrides,
|
|
} as PublicInterface<Playback> as Playback;
|
|
};
|
|
|
|
export const createTestPlaybackClock = (): PlaybackClock => {
|
|
return {
|
|
durationSeconds: 31,
|
|
timeSeconds: 41,
|
|
liveData: new SimpleObservable<number[]>(),
|
|
populatePlaceholdersFrom: jest.fn(),
|
|
flagLoadTime: jest.fn(),
|
|
flagStart: jest.fn(),
|
|
flagStop: jest.fn(),
|
|
syncTo: jest.fn(),
|
|
destroy: jest.fn(),
|
|
} as PublicInterface<PlaybackClock> as PlaybackClock;
|
|
};
|