@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
71 lines (56 loc) • 2.24 kB
text/typescript
import * as utils from "../configurationUtils";
const { parseLanguageTracks } = utils;
describe("utilities", () => {
describe("parseLanguageTracks", () => {
const textTrack = { index: 0, id: "text-0" };
const audioTrack = { index: 0, id: "audio-0" };
it("should handle undefined tracks", () => {
const callParseLanguage = () => {
parseLanguageTracks({});
};
expect(callParseLanguage).not.toThrow();
});
it("should handle stringified json and object tracks", () => {
const currentResultWithObj = parseLanguageTracks({
textTracks: [textTrack],
audioTracks: [audioTrack],
});
const currentResultWithString = parseLanguageTracks({
textTracks: JSON.stringify([textTrack]),
audioTracks: JSON.stringify([audioTrack]),
});
expect(currentResultWithObj.textTracks.length).toBe(1);
expect(currentResultWithObj.audioTracks.length).toBe(1);
expect(currentResultWithString.textTracks.length).toBe(1);
expect(currentResultWithString.audioTracks.length).toBe(1);
});
it("should add textType property to tracks", () => {
const currentResult = parseLanguageTracks({
textTracks: [textTrack],
audioTracks: [audioTrack],
});
expect(currentResult.textTracks[0]).toHaveProperty("trackType");
expect(currentResult.audioTracks[0]).toHaveProperty("trackType");
});
it("should correctly set audio and text trackId a", () => {
const currentResult = parseLanguageTracks({
textTracks: [textTrack],
audioTracks: [audioTrack],
selectedAudioTrack: 0,
selectedTextTrack: 0,
});
expect(currentResult.audioTrackId).toBe(audioTrack.id);
expect(currentResult.textTrackId).toBe(textTrack.id);
});
it("should return audio and subtitle track id as undefined if -1 values are passed", () => {
const currentResult = parseLanguageTracks({
textTracks: [textTrack],
audioTracks: [audioTrack],
selectedAudioTrack: -1,
selectedTextTrack: -1,
});
expect(currentResult.audioTrackId).not.toBeDefined();
expect(currentResult.textTrackId).not.toBeDefined();
});
});
});