|
1 |
| -import { fireEvent, waitFor } from '@testing-library/dom'; |
| 1 | +import { waitFor } from '@testing-library/dom'; |
2 | 2 | import fs from 'fs';
|
3 | 3 | import path from 'path';
|
4 | 4 | import '@testing-library/jest-dom';
|
5 | 5 | import { setUpDevCycle } from './devcycle.js';
|
6 |
| -import { users } from './users.js'; |
7 | 6 |
|
8 | 7 | process.env.DEVCYCLE_CLIENT_SDK_KEY = 'mocked-sdk-key';
|
9 | 8 |
|
@@ -48,55 +47,38 @@ describe('DevCycle client initialization', () => {
|
48 | 47 | })
|
49 | 48 | })
|
50 | 49 |
|
51 |
| -describe('Togglebot speed', () => { |
| 50 | +describe('App content', () => { |
52 | 51 | beforeEach(() => {
|
53 | 52 | jest.clearAllMocks();
|
54 | 53 | document.documentElement.innerHTML = html.toString();
|
55 | 54 | });
|
56 | 55 |
|
57 |
| - test('Togglebot handles speed "off"', async () => { |
58 |
| - mockVariableValue('togglebot-speed', 'off'); |
| 56 | + test.each([ |
| 57 | + ['off', 'Hello! Nice to meet you.'], |
| 58 | + ['slow', 'Awesome, look at you go!'], |
| 59 | + ['fast', 'This is fun!'], |
| 60 | + ['off-axis', "...I'm gonna be sick..."], |
| 61 | + ['surprise', "What the unicorn?"], |
| 62 | + ])('Togglebot message is updated for speed "%s"', async (speed, expectedMessage) => { |
| 63 | + mockVariableValue('togglebot-speed', speed); |
59 | 64 | setUpDevCycle();
|
60 | 65 | await waitFor(() => {
|
61 |
| - expect(document.getElementById('togglebot-message')).toHaveTextContent("Hello! Nice to meet you."); |
62 |
| - expect(document.getElementById('instructions-header')).toHaveTextContent('Welcome to DevCycle\'s example app'); |
| 66 | + expect(document.getElementById('togglebot-message')).toHaveTextContent(expectedMessage); |
63 | 67 | });
|
64 | 68 | })
|
65 | 69 |
|
66 |
| - test('Togglebot handles speed "slow"', async () => { |
67 |
| - mockVariableValue('togglebot-speed', 'slow'); |
| 70 | + test.each([ |
| 71 | + 'default', |
| 72 | + 'step-1', |
| 73 | + 'step-2', |
| 74 | + 'step-3', |
| 75 | + ])('App description is updated for value "%s"', async (exampleText) => { |
| 76 | + mockVariableValue('example-text', exampleText); |
68 | 77 | setUpDevCycle();
|
| 78 | + await new Promise((resolve) => setTimeout(resolve, 100)); |
69 | 79 | await waitFor(() => {
|
70 |
| - expect(document.getElementById('togglebot-message')).toHaveTextContent("Awesome, look at you go!"); |
71 |
| - expect(document.getElementById('instructions-header')).toHaveTextContent('Great! You\'ve taken the first step in exploring DevCycle.'); |
72 |
| - }); |
73 |
| - }) |
74 |
| - |
75 |
| - test('Togglebot handles speed "fast"', async () => { |
76 |
| - mockVariableValue('togglebot-speed', 'fast'); |
77 |
| - setUpDevCycle(); |
78 |
| - await waitFor(() => { |
79 |
| - expect(document.getElementById('togglebot-message')).toHaveTextContent("This is fun!"); |
80 |
| - expect(document.getElementById('instructions-header')).toHaveTextContent('You\'re getting the hang of things.'); |
81 |
| - }); |
82 |
| - }) |
83 |
| - |
84 |
| - test('Togglebot handles speed "off-axis"', async () => { |
85 |
| - mockVariableValue('togglebot-speed', 'off-axis'); |
86 |
| - setUpDevCycle(); |
87 |
| - await waitFor(() => { |
88 |
| - expect(document.getElementById('togglebot-message')).toHaveTextContent("...I'm gonna be sick..."); |
89 |
| - expect(document.getElementById('instructions-header')).toHaveTextContent('You\'re getting the hang of things.'); |
90 |
| - }); |
91 |
| - }) |
92 |
| - |
93 |
| - |
94 |
| - test('Togglebot handles speed "surprise"', async () => { |
95 |
| - mockVariableValue('togglebot-speed', 'surprise'); |
96 |
| - setUpDevCycle(); |
97 |
| - await waitFor(() => { |
98 |
| - expect(document.getElementById('togglebot-message')).toHaveTextContent("What the unicorn?"); |
99 |
| - expect(document.getElementById('instructions-header')).toHaveTextContent('You\'re getting the hang of things.'); |
| 80 | + expect(document.getElementById('instructions-header').textContent).toMatchSnapshot(); |
| 81 | + expect(document.getElementById('instructions-body').textContent).toMatchSnapshot(); |
100 | 82 | });
|
101 | 83 | })
|
102 | 84 | })
|
|
0 commit comments