From 516db5fff9195e3a7106197c633fb202db24b99e Mon Sep 17 00:00:00 2001 From: Remi Planel Date: Tue, 4 Jun 2019 16:24:11 +0200 Subject: [PATCH] Add test for genome-browser layout --- src/scripts/layout/genome-browser.ts | 6 +-- tests/genome-browser.test.ts | 61 ++++++++++++++-------------- 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/src/scripts/layout/genome-browser.ts b/src/scripts/layout/genome-browser.ts index a23b8c6..d7c7cf3 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 03b50fd..f9499ad 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.0020.040.060.080.010012014016018020022024026028030025.0120Chromosome30.040.050.060.070.080.090.0100110120' + const result = 'chromosome ruler title (300 bp)0.0020.040.060.080.010012014016018020022024026028030025.0120Chromosome [25.0, 120]30.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", @@ -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 -- GitLab