Skip to content

Commit 58326a8

Browse files
authored
Add test (#223)
1 parent 5903868 commit 58326a8

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed

packages/web-speech-cognitive-services/src/SpeechServices/SpeechToText/createSpeechRecognitionPonyfill.test.js

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1861,6 +1861,96 @@ describe('SpeechRecognition with loosened events', () => {
18611861
`);
18621862
});
18631863

1864+
test('stop after recognized 1 speech', async () => {
1865+
speechRecognition.start();
1866+
speechRecognition.continuous = true;
1867+
speechRecognition.interimResults = true;
1868+
1869+
const recognizer = await constructRecognizerDeferred.promise;
1870+
1871+
await recognizer.waitForStartContinuousRecognitionAsync();
1872+
1873+
// This will fire "firstAudibleChunk" on "emitRead"
1874+
await recognizer.readAudioChunk();
1875+
1876+
recognizer.audioConfig.emitEvent('AudioSourceReadyEvent');
1877+
1878+
// cognitiveservices:audioSourceReady
1879+
// webspeech:start
1880+
// webspeech:audiostart
1881+
1882+
recognizer.audioConfig.emitRead();
1883+
await soundStartEmitted;
1884+
1885+
// cognitiveservices:firstAudibleChunk
1886+
// webspeech:soundstart
1887+
1888+
recognizer.recognizing(this, createRecognizingEvent('hello'));
1889+
1890+
// cognitiveservices:recognizing
1891+
// webspeech:speechstart
1892+
// webspeech:result ['hello']
1893+
1894+
recognizer.recognized(this, createRecognizedEvent('Hello.'));
1895+
1896+
// cognitiveservices:recognized
1897+
// webspeech:result ['Hello.' (isFinal)]
1898+
1899+
speechRecognition.stop();
1900+
1901+
// cognitiveservices:stop
1902+
1903+
recognizer.speechEndDetected(this, {});
1904+
1905+
// cognitiveservices:speechEndDetected
1906+
1907+
recognizer.recognized(this, {
1908+
offset: 50000000,
1909+
result: {
1910+
duration: 0,
1911+
json: JSON.stringify({
1912+
RecognitionStatus: 5,
1913+
Offset: 50000000,
1914+
Duration: 0
1915+
}),
1916+
offset: 50000000,
1917+
reason: 0 // NoMatch
1918+
}
1919+
});
1920+
1921+
// cognitiveservices:recognized
1922+
// webspeech:speechend
1923+
// webspeech:soundend
1924+
// webspeech:audioend
1925+
// webspeech:result ['Hello.' (isFinal)]
1926+
// webspeech:end
1927+
1928+
await endEventEmitted;
1929+
1930+
expect(toSnapshot(events)).toMatchInlineSnapshot(`
1931+
[
1932+
"cognitiveservices:audioSourceReady",
1933+
"webspeech:start",
1934+
"webspeech:audiostart",
1935+
"cognitiveservices:firstAudibleChunk",
1936+
"webspeech:soundstart",
1937+
"cognitiveservices:recognizing",
1938+
"webspeech:speechstart",
1939+
"webspeech:result ['hello']",
1940+
"cognitiveservices:recognized",
1941+
"webspeech:result ['Hello.' (isFinal)]",
1942+
"cognitiveservices:stop",
1943+
"cognitiveservices:speechEndDetected",
1944+
"cognitiveservices:recognized",
1945+
"webspeech:speechend",
1946+
"webspeech:soundend",
1947+
"webspeech:audioend",
1948+
"webspeech:result ['Hello.' (isFinal)]",
1949+
"webspeech:end",
1950+
]
1951+
`);
1952+
});
1953+
18641954
test('abort after recognized', async () => {
18651955
speechRecognition.start();
18661956
speechRecognition.continuous = true;

0 commit comments

Comments
 (0)