Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(curriculum): update grammar and tests music 38 #54557

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -7,23 +7,26 @@ dashedName: step-38

# --description--

Before playing the song, you need to make sure it starts from the beginning. This can be achieved by the use of the `currentTime` property of the `audio` object.
Before playing the song, you need to make sure it starts from the beginning. This can be achieved by the use of the `currentTime` property on the `audio` object.

Add an `if` statement to check whether the `userData?.currentSong` is `null` or if `userData?.currentSong.id` is strictly not equal `song.id`. Inside `if` block, set the `currentTime` property of the `audio` object to `0`.
Add an `if` statement to check whether the `userData?.currentSong` is falsy *OR* if `userData?.currentSong.id` is strictly not equal `song.id`. This condition will check if no current song is playing or if the current song is different from the one that is about to be played.

Inside `if` block, set the `currentTime` property of the `audio` object to `0`.

# --hints--

You should create an `if` statement with the condition `userData?.currentSong === null || userData?.currentSong.id !== song.id`.
Despite the use of the logical *OR* operator, order in this statement is important, as `userData?.currentSong.id` depends on the existence of `userData?.currentSong`.

Don't forget to include optional chaining.

```js
assert.match(code, /if\s*\(\s*userData\?\.currentSong\s*===\s*null\s*\|\|\s*userData\?\.currentSong\.id\s*!==\s*song\.id\s*\)\s*\{\s*/)
assert.match(code, /if\s*\(\s*(?:(?:!userData\?\.currentSong|\s*userData\?\.currentSong\s*===\s*null)\s*\|\|\s*userData\?\.currentSong\.id\s*!==\s*song\.id\s*|\s*userData\?\.currentSong\.id\s*!==\s*song\.id\s*\|\|\s*(?:!userData\?\.currentSong|\s*userData\?\.currentSong\s*===\s*null))\s*\)\s*\{\}/)
```

You should set `audio.currentTime` to `0` inside your `if` block.

```js
assert.match(code, /if\s*\(\s*userData\?\.currentSong\s*===\s*null\s*\|\|\s*userData\?\.currentSong\.id\s*!==\s*song\.id\s*\)\s*\{\s*audio\.currentTime\s*=\s*0\s*;?\s*\}/)
assert.match(code, /if\s*\(\s*(?:(?:!userData\?\.currentSong|\s*userData\?\.currentSong\s*===\s*null)\s*\|\|\s*userData\?\.currentSong\.id\s*!==\s*song\.id\s*|\s*userData\?\.currentSong\.id\s*!==\s*song\.id\s*\|\|\s*(?:!userData\?\.currentSong|\s*userData\?\.currentSong\s*===\s*null))\s*\)\s*\{\s*audio\.currentTime\s*=\s*0\s*;?\s*\}/)
```

# --seed--
Expand Down