fix(curriculum): tests passing with seed code in Dice game (#55614)

pull/55796/head
Krzysztof G. 2024-08-08 21:35:07 +02:00 committed by GitHub
parent 0497aac520
commit 6b9979ae50
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 46 additions and 8 deletions

View File

@ -24,41 +24,67 @@ When your `rulesBtn` is clicked, your `isModalShowing` should be `true`.
```js
rulesBtn.click();
assert.isTrue(isModalShowing);
resetState();
```
When your `rulesBtn` is clicked, your `rulesContainer` should be visible.
```js
rulesBtn.click();
assert.isTrue(rulesContainer.checkVisibility());
resetState();
```
When your `rulesBtn` is clicked, your `rulesBtn` should say `Hide rules`.
```js
rulesBtn.click();
assert.strictEqual(rulesBtn.innerText.trim(), "Hide rules");
resetState();
```
When your `rulesBtn` is clicked again, your `isModalShowing` should be `false`.
When your `rulesBtn` is clicked twice, your `isModalShowing` should be `false`.
```js
rulesBtn.click();
assert.isTrue(isModalShowing);
rulesBtn.click();
assert.isFalse(isModalShowing);
resetState();
```
When your `rulesBtn` is clicked again, your `rulesContainer` should not be visible.
When your `rulesBtn` is clicked twice, your `rulesContainer` should not be visible.
```js
rulesBtn.click();
assert.isTrue(rulesContainer.checkVisibility());
rulesBtn.click();
assert.isFalse(rulesContainer.checkVisibility());
resetState();
```
When your `rulesBtn` is clicked again, your `rulesBtn` should say `Show rules`.
When your `rulesBtn` is clicked twice, your `rulesBtn` should say `Show rules`.
```js
rulesBtn.click();
assert.strictEqual(rulesBtn.innerText.trim(), "Hide rules");
rulesBtn.click();
assert.strictEqual(rulesBtn.innerText.trim(), "Show rules");
resetState();
```
# --seed--
## --after-user-code--
```js
function resetState() {
isModalShowing = false;
rulesBtn.textContent = 'Show rules';
rulesContainer.style.display = 'none';
}
```
## --seed-contents--
```html

View File

@ -83,18 +83,30 @@ for (const element of scoreSpans) {
You should call your `resetGame` function after displaying the alert in your `keepScoreBtn` listener.
```js
const messages = []
let called = false;
const oldReset = resetGame;
resetGame = () => {
called = true;
oldReset();
}
const messages = [];
const oldAlert = alert;
alert = (msg) => {messages.push(msg)};
const oldWindow = window.alert;
alert = (msg) => {messages.push(msg)};
window.alert = (msg) => {messages.push(msg)};
rolls = 4;
rolls = 1;
round = 6;
rollDiceBtn.click();
document.querySelector('#none').click();
keepScoreBtn.click();
assert.lengthOf(messages, 0);
rollDiceBtn.click();
assert.isFalse(called);
new Promise(resolve => setTimeout(resolve, 1000)).then(() => {
assert.lengthOf(messages, 0);
assert.lengthOf(messages, 1);
assert.isTrue(called);
resetGame = oldReset;
alert = oldAlert;
window.alert = oldWindow;
});