nextflow_process { name "Test Process FASTQC" script "../main.nf" process "FASTQC" tag "modules" tag "modules_nfcore" tag "fastqc" test("sarscov2 single-end [fastq]") { when { process { """ input[0] = Channel.of([ [ id: 'test', single_end:true ], [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] ]) """ } } then { assertAll ( { assert process.success }, // NOTE The report contains the date inside it, which means that the md5sum is stable per day, but not longer than that. So you can't md5sum it. // looks like this:
Mon 2 Oct 2023
test.gz
// https://github.com/nf-core/modules/pull/3903#issuecomment-1743620039 { assert process.out.html[0][1] ==~ ".*/test_fastqc.html" }, { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, { assert path(process.out.html[0][1]).text.contains("File typeConventional base calls") }, { assert snapshot(process.out.versions).match("fastqc_versions_single") } ) } } test("sarscov2 paired-end [fastq]") { when { process { """ input[0] = Channel.of([ [id: 'test', single_end: false], // meta map [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) ] ]) """ } } then { assertAll ( { assert process.success }, { assert process.out.html[0][1][0] ==~ ".*/test_1_fastqc.html" }, { assert process.out.html[0][1][1] ==~ ".*/test_2_fastqc.html" }, { assert process.out.zip[0][1][0] ==~ ".*/test_1_fastqc.zip" }, { assert process.out.zip[0][1][1] ==~ ".*/test_2_fastqc.zip" }, { assert path(process.out.html[0][1][0]).text.contains("File typeConventional base calls") }, { assert path(process.out.html[0][1][1]).text.contains("File typeConventional base calls") }, { assert snapshot(process.out.versions).match("fastqc_versions_paired") } ) } } test("sarscov2 interleaved [fastq]") { when { process { """ input[0] = Channel.of([ [id: 'test', single_end: false], // meta map file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_interleaved.fastq.gz', checkIfExists: true) ]) """ } } then { assertAll ( { assert process.success }, { assert process.out.html[0][1] ==~ ".*/test_fastqc.html" }, { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, { assert path(process.out.html[0][1]).text.contains("File typeConventional base calls") }, { assert snapshot(process.out.versions).match("fastqc_versions_interleaved") } ) } } test("sarscov2 paired-end [bam]") { when { process { """ input[0] = Channel.of([ [id: 'test', single_end: false], // meta map file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true) ]) """ } } then { assertAll ( { assert process.success }, { assert process.out.html[0][1] ==~ ".*/test_fastqc.html" }, { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, { assert path(process.out.html[0][1]).text.contains("File typeConventional base calls") }, { assert snapshot(process.out.versions).match("fastqc_versions_bam") } ) } } test("sarscov2 multiple [fastq]") { when { process { """ input[0] = Channel.of([ [id: 'test', single_end: false], // meta map [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test2_1.fastq.gz', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test2_2.fastq.gz', checkIfExists: true) ] ]) """ } } then { assertAll ( { assert process.success }, { assert process.out.html[0][1][0] ==~ ".*/test_1_fastqc.html" }, { assert process.out.html[0][1][1] ==~ ".*/test_2_fastqc.html" }, { assert process.out.html[0][1][2] ==~ ".*/test_3_fastqc.html" }, { assert process.out.html[0][1][3] ==~ ".*/test_4_fastqc.html" }, { assert process.out.zip[0][1][0] ==~ ".*/test_1_fastqc.zip" }, { assert process.out.zip[0][1][1] ==~ ".*/test_2_fastqc.zip" }, { assert process.out.zip[0][1][2] ==~ ".*/test_3_fastqc.zip" }, { assert process.out.zip[0][1][3] ==~ ".*/test_4_fastqc.zip" }, { assert path(process.out.html[0][1][0]).text.contains("File typeConventional base calls") }, { assert path(process.out.html[0][1][1]).text.contains("File typeConventional base calls") }, { assert path(process.out.html[0][1][2]).text.contains("File typeConventional base calls") }, { assert path(process.out.html[0][1][3]).text.contains("File typeConventional base calls") }, { assert snapshot(process.out.versions).match("fastqc_versions_multiple") } ) } } test("sarscov2 custom_prefix") { when { process { """ input[0] = Channel.of([ [ id:'mysample', single_end:true ], // meta map file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ]) """ } } then { assertAll ( { assert process.success }, { assert process.out.html[0][1] ==~ ".*/mysample_fastqc.html" }, { assert process.out.zip[0][1] ==~ ".*/mysample_fastqc.zip" }, { assert path(process.out.html[0][1]).text.contains("File typeConventional base calls") }, { assert snapshot(process.out.versions).match("fastqc_versions_custom_prefix") } ) } } test("sarscov2 single-end [fastq] - stub") { options "-stub" when { process { """ input[0] = Channel.of([ [ id: 'test', single_end:true ], [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] ]) """ } } then { assertAll ( { assert process.success }, { assert snapshot(process.out.html.collect { file(it[1]).getName() } + process.out.zip.collect { file(it[1]).getName() } + process.out.versions ).match("fastqc_stub") } ) } } }