From fe450202ecd52cafedc22f59dba79bbbeb99657d Mon Sep 17 00:00:00 2001 From: jahorton Date: Tue, 28 Apr 2020 15:56:16 +0700 Subject: [PATCH] feat(web): BrowserProctor execution of new test spec --- web/tools/recorder/browserProctor.ts | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/web/tools/recorder/browserProctor.ts b/web/tools/recorder/browserProctor.ts index ac72735b3e..5da7028fa4 100644 --- a/web/tools/recorder/browserProctor.ts +++ b/web/tools/recorder/browserProctor.ts @@ -65,14 +65,21 @@ namespace KMWRecorder { simulateSequence(sequence: TestSequence): string { let driver = new BrowserDriver(this.target); - // Yes, it's pretty simple for now... but this is only one of two code paths - // that will exist here, hence the abstraction. + // For the version 10.0 spec if(sequence instanceof InputEventSpecSequence) { return driver.simulateSequence(sequence); - } else { - // Convert new spec sequence to an InputEventSpecSequence. - // is not yet implemented. - throw new Error("code path not yet implemented"); + + // For the version 14.0+ spec + } else if(sequence instanceof RecordedKeystrokeSequence) { + let inputSpecs: InputEventSpec[] = []; + + for(let i=0; i < sequence.inputs.length; i++) { + inputSpecs[i] = sequence.inputs[i].inputEventSpec; + } + + // Converts the sequence back to version 10.0, since it's very well made for browser simulation. + let eventSpecSequence = new InputEventSpecSequence(inputSpecs, sequence.output, sequence.msg); + return driver.simulateSequence(eventSpecSequence); } } }