Semana Javascript Expert06 Save

JS Expert Week 6.0 Classes - Spotify Radio

Project README

Spotify Radio - JS Expert Week 6.0

Welcome to the sixth Javascript Expert Week. This is the starting code to start our journey.

Tag this project with a star 🌟

Preview

Checklist Features

  • Web API

    • Must achieve 100% code coverage in tests
    • Must have end to end tests validating all API routes
    • Must deliver static files as Node.js Streams
    • Must deliver music files as a Node.js Stream
    • Given a disconnected user it should not break the API
    • Even if multiple commands are fired at the same time, it should not break the API
    • If an unexpected error occurs, the API should keep working
    • The project needs to run on Linux, Mac and Windows environments
  • Web App

    • Client
      • Must play the broadcast
      • Shouldn't pause if any effects are added
    • Controller
      • Must achieve 100% code coverage in tests
      • Must be able to start or stop a broadcast
      • Must send commands to add audio effects to a stream

Tasks per class

  • Lesson 01: Cover service and route layers with unit tests and achieve 100% code coverage
  • Lesson 02: Maintain 100% code coverage and implement e2e tests for the entire API
  • Lesson 03: implement unit tests for the frontend and maintain 100% code coverage
  • PLUS:
    • provide a new effect
      • add a new button on the controller
      • add a new effect sound to the audios/fx/ folder
      • repost on heroku

Source code for classes and solving challenges

Credits to the sources I've used on the demos

Streaming

Effects

FAQ

  • NODE_OPTIONS is not a system recognized command, what to do?

    • If you are on Windows, the way to create environment variables is different. You must use the word set before the command.
    • Ex: "test": "set NODE_OPTIONS=--experimental-vm-modules && npx jest --runInBand",
  • I ran npm test but nothing happens, what to do?

    • Check your Node.js version. We are using version 17. Go to node.js website and download the latest version.
  • jest.spyOn - when we try to use function.name (something like stream.pipe.name), it says the instance is undefined

    • In this case, use the value as a string: jest.spyOn(stream, "pipe").mockReturnValue
  • Challenge 01 impossible to complete 100% code coverage because testUtil.js is not being fully used

    • Add the following code snippet to the first line of the testUtil.js file: /* istanbul ignore file */ . This will make jest ignore this file and complete 100%.
    • Important: this change will only serve to complete this first and/or second challenge, in the last class, we will not need to ignore this file since we will use all the functions
Open Source Agenda is not affiliated with "Semana Javascript Expert06" Project. README Source: ErickWendel/semana-javascript-expert06
Stars
1,274
Open Issues
0
Last Commit
1 year ago

Open Source Agenda Badge

Open Source Agenda Rating