diff --git a/tests/genome-browser.test.ts b/tests/genome-browser.test.ts index 0ba3f2eb81f5ffabee3e156955302d8a934f7b78..03b50fdfa62194a99f97be359073528956adade1 100644 --- a/tests/genome-browser.test.ts +++ b/tests/genome-browser.test.ts @@ -1,10 +1,76 @@ import GenomeBrowser from "../src/scripts/component/genome-browser"; +import { GenomeBrowserData, GeneData, SelectedChromosomeData } from "../src/scripts/types"; +import { select } from "d3-selection"; +describe("Test Genome Browser", () => { + const result = 'chromosome ruler title (300 bp)0.0020.040.060.080.010012014016018020022024026028030025.0120Chromosome30.040.050.060.070.080.090.0100110120' + const genomeBrowserComponent = GenomeBrowser(); + const width = 1500; + const window: [number, number] = [25, 120]; + const chromosomeSize = 300; + const genes: GeneData[] = [ + { + name: "gene 1", + strand: "-", + begin: 10, + end: 50, + gene: "insA", + }, + { + name: "gene 2", + strand: "+", + begin: 60, + end: 100, + gene: "yaaY", + }, + { + name: "gene 3", + strand: "+", + begin: 150, + end: 280, + gene: "foo", + } + ]; + const chromInterval: [number, number] = [0, chromosomeSize] + const data: GenomeBrowserData[] = [ + { + width, + chromosome: { + size: chromosomeSize, + genes, + ruler: { + title: "chromosome ruler title (" + chromosomeSize + " bp)", + interval: chromInterval, + window, + maxWindowSize: chromosomeSize, + eventHandler: { + brushed: () => console.log("chromosome brushed") + } + }, + }, + selectedChromosome: { + window, + genes, + ruler: { + title: "Chromosome", + interval: window + } + } + } -describe("Test Genome Browser", () => { - // const genomeBrowserComponent = GenomeBrowser(); - test("", () => { + ]; + document.body.innerHTML = + '
'; + const container = select("svg") + .select("g"); + container + .datum(data) + .call(genomeBrowserComponent); + test("Test all dom element", () => { + // This is test is too much. Should find a smarter one that won't break + // for small changement. + expect(container.html()).toBe(result); }) }) \ No newline at end of file