From 04eb21a687ad326c3038dd429a3a6b8fa1ebc6f7 Mon Sep 17 00:00:00 2001 From: xarxziux Date: Wed, 15 Aug 2018 21:04:30 +0100 Subject: [PATCH] Fix unit tests for RNA Transcription exercise Change the unit tests for the RNA Transcription exercise to accept a named function export instead of a default class export as per issues #274 and #436: - Change default class import `Transcriptor` to named function import `{ toRna }`. - Remove unnecessary `const transcriptor = new Transcriptor();` line. - Change `transcriptor.toRna(...` calls to `toRna(...`. - Redesign example.js file to export a single named function. --- exercises/rna-transcription/example.js | 16 +++++++------- .../rna-transcription.spec.js | 21 +++++++++---------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/exercises/rna-transcription/example.js b/exercises/rna-transcription/example.js index 7e6fc0f4ac..02ff0d47dc 100644 --- a/exercises/rna-transcription/example.js +++ b/exercises/rna-transcription/example.js @@ -5,15 +5,13 @@ const DNA_TO_RNA = { A: 'U', }; -export default class Transcriptor { - toRna(dna) { - const rna = dna.replace(/./g, nucleotide => DNA_TO_RNA[nucleotide]); +export const toRna = dna => { + const rna = dna.replace(/./g, nucleotide => DNA_TO_RNA[nucleotide]); - if (rna.length !== dna.length) { - // invalid characters in the strand - throw new Error('Invalid input DNA.'); - } else { - return rna; - } + if (rna.length !== dna.length) { + // invalid characters in the strand + throw new Error('Invalid input DNA.'); + } else { + return rna; } } diff --git a/exercises/rna-transcription/rna-transcription.spec.js b/exercises/rna-transcription/rna-transcription.spec.js index a8e7f9d30f..4b257c492b 100644 --- a/exercises/rna-transcription/rna-transcription.spec.js +++ b/exercises/rna-transcription/rna-transcription.spec.js @@ -1,47 +1,46 @@ -import Transcriptor from './rna-transcription'; +import { toRna } from './rna-transcription'; describe('Transcriptor', () => { - const transcriptor = new Transcriptor(); test('empty rna sequence', () => { - expect(transcriptor.toRna('')).toEqual(''); + expect(toRna('')).toEqual(''); }); xtest('transcribes cytosine to guanine', () => { - expect(transcriptor.toRna('C')).toEqual('G'); + expect(toRna('C')).toEqual('G'); }); xtest('transcribes guanine to cytosine', () => { - expect(transcriptor.toRna('G')).toEqual('C'); + expect(toRna('G')).toEqual('C'); }); xtest('transcribes adenine to uracil', () => { - expect(transcriptor.toRna('A')).toEqual('U'); + expect(toRna('A')).toEqual('U'); }); xtest('transcribes thymine to adenine', () => { - expect(transcriptor.toRna('T')).toEqual('A'); + expect(toRna('T')).toEqual('A'); }); xtest('transcribes all dna nucleotides to their rna complements', () => { - expect(transcriptor.toRna('ACGTGGTCTTAA')) + expect(toRna('ACGTGGTCTTAA')) .toEqual('UGCACCAGAAUU'); }); xtest('correctly handles invalid input', () => { - expect(() => transcriptor.toRna('U')).toThrow( + expect(() => toRna('U')).toThrow( new Error('Invalid input DNA.'), ); }); xtest('correctly handles completely invalid input', () => { - expect(() => transcriptor.toRna('XXX')).toThrow( + expect(() => toRna('XXX')).toThrow( new Error('Invalid input DNA.'), ); }); xtest('correctly handles partially invalid input', () => { - expect(() => transcriptor.toRna('ACGTXXXCTTAA')).toThrow( + expect(() => toRna('ACGTXXXCTTAA')).toThrow( new Error('Invalid input DNA.'), ); });