Code Monkey home page Code Monkey logo

semana-javascript-expert06's Introduction

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

semana-javascript-expert06's People

Contributors

erickwendel avatar maxdevjs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.