/* eslint-disable @typescript-eslint/no-unused-expressions */ import {IXmlElement} from "../../../../src/Common/FileIO/Xml"; import {MusicSheet} from "../../../../src/MusicalScore/MusicSheet"; import {MusicSheetReader} from "../../../../src/MusicalScore/ScoreIO/MusicSheetReader"; describe("Clef Converter MusicXML to VexFlow", () => { let reader: MusicSheetReader; let parser: DOMParser; before((): void => { reader = new MusicSheetReader(); parser = new DOMParser(); }); it("reads treble key", (done: Mocha.Done) => { getMusicSheetWithClef("G").getStaffFromIndex(0); done(); }); /** * Simulates loading a [[MusicSheet]] with the specified clef. * * @see https://usermanuals.musicxml.com/MusicXML/Content/EL-MusicXML-clef.htm */ function getMusicSheetWithClef(sign: string, line?: number, clefOcatveChange?: number, additional?: string, size?: string): MusicSheet { const doc: Document = parser.parseFromString(getMusicXmlWithClef(sign, line, clefOcatveChange, additional, size), "text/xml"); chai.expect(doc).to.not.be.undefined; const score: IXmlElement = new IXmlElement(doc.getElementsByTagName("score-partwise")[0]); chai.expect(score).to.not.be.undefined; return reader.createMusicSheet(score, "template.xml"); } function getMusicXmlWithClef(sign: string, line?: number, clefOcatveChange?: number, additional?: string, size?: string): string { // let modeElement: string = mode ? `${mode}` : ""; // let fifthsElement: string = fifths ? `${fifths}` : ""; return ` Music 1 G 2 C 4 4 whole `; } });