diff --git a/src/scripts/layout/genome-browser.ts b/src/scripts/layout/genome-browser.ts
index a23b8c6fd005f35231ff01592bb43e65bf77f23c..d7c7cf301929e72bd8532a8b826f9ca14c20f630 100644
--- a/src/scripts/layout/genome-browser.ts
+++ b/src/scripts/layout/genome-browser.ts
@@ -1,6 +1,4 @@
-import { GenomeBrowserState, GeneData } from "../types";
-
-import { event } from "d3-selection";
+import { GenomeBrowserState, GeneData, GenomeBrowserData } from "../types";
import { format as d3Format } from "d3-format";
import { scaleOrdinal } from "d3-scale";
import { color } from "d3";
@@ -15,7 +13,7 @@ export default function genomeBrowserData(
state: GenomeBrowserState,
brushHandler: any,
clickHandler: any
-) {
+): GenomeBrowserData {
const {
window,
width,
diff --git a/tests/genome-browser.test.ts b/tests/genome-browser.test.ts
index 03b50fdfa62194a99f97be359073528956adade1..f9499ad80f465d4b8dd8d7fdcd35b7469afb793d 100644
--- a/tests/genome-browser.test.ts
+++ b/tests/genome-browser.test.ts
@@ -1,13 +1,15 @@
import GenomeBrowser from "../src/scripts/component/genome-browser";
-import { GenomeBrowserData, GeneData, SelectedChromosomeData } from "../src/scripts/types";
+import genomeBrowserDataLayout from "../src/scripts/layout/genome-browser";
+import { GenomeBrowserData, GeneData } 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 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 [25.0, 120] 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",
@@ -32,45 +34,44 @@ describe("Test Genome Browser", () => {
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
- }
- }
+ const genomeBrowserState = {
+ width,
+ chromosomeSize,
+ window,
+ genes,
+ chromosome: {
+ title: "chromosome ruler title"
+ },
+ selectedChromosome: {
+ title: "Chromosome"
}
+ }
- ];
+ const genomeBrowserData = genomeBrowserDataLayout(
+ genomeBrowserState,
+ () => console.log("brush"),
+ () => console.log("click")
+ );
+ const data: GenomeBrowserData[] = [genomeBrowserData];
document.body.innerHTML =
'
';
const container = select("svg")
.select("g");
- container
+ 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);
-
})
+ test("Test transform data", () => {
+ expect(genomeBrowserData.selectedChromosome.genes.length).toBe(2);
+ });
+
+ test("test window data", () => {
+ expect(genomeBrowserData.selectedChromosome.window).toBe(genomeBrowserState.window);
+ expect(genomeBrowserData.selectedChromosome.window).toBe(genomeBrowserData.chromosome.ruler.window);
+ expect(genomeBrowserData.selectedChromosome.window).toBe(genomeBrowserData.selectedChromosome.ruler.interval)
+ });
})
\ No newline at end of file