/* 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
`;
}
});