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.00 20.0 40.0 60.0 80.0 100 120 140 160 180 200 220 240 260 280 300 25.0 120 Chromosome 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100 110 120 '
+ 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