├── weekly_mission_3 ├── spiderverse │ ├── index.js │ ├── .gitignore │ ├── package.json │ ├── app │ │ └── spiderman.js │ └── test │ │ └── spiderman.test.js ├── my_launchx_app │ ├── .gitignore │ ├── index.js │ ├── app │ │ └── missionCommander.js │ ├── package.json │ └── test │ │ └── missionCommander.test.js └── readme.md ├── weekly_mission_1 ├── readme.md ├── example7 │ ├── main_2.js │ ├── main.js │ ├── main_module.js │ ├── package.json │ └── logger.js ├── example10 │ ├── main.js │ ├── package.json │ └── pokemon.js ├── example8 │ ├── main_2.js │ ├── main.js │ ├── package.json │ └── logger.js ├── example2 │ ├── main.js │ └── logger.js ├── example6 │ ├── main.js │ ├── logger.js │ └── patcher.js ├── example3 │ ├── main.js │ ├── logger_1.js │ └── logger_2.js ├── example5 │ ├── main.js │ └── logger.js ├── example4 │ ├── main.js │ └── logger.js ├── example9 │ ├── main.js │ └── pokemon.js └── example1 │ └── main.js ├── weekly_mission_2 ├── readme.md ├── 1 Objetos │ ├── 1_1_Objetos.js │ ├── 1_2_Objetos.js │ ├── 1_5_Objetos.js │ ├── 1_4_Objetos.js │ └── 1_3_Objetos.js └── example2 │ └── example2.js ├── weekly_mission_4 └── readme.md ├── weekly_mission_5 └── readme.md ├── weekly_mission_6 └── readme.md └── README.md /weekly_mission_3/spiderverse/index.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /weekly_mission_1/readme.md: -------------------------------------------------------------------------------- 1 | # Weekly Mission 1 2 | -------------------------------------------------------------------------------- /weekly_mission_2/readme.md: -------------------------------------------------------------------------------- 1 | # Weekly Mission 2 2 | -------------------------------------------------------------------------------- /weekly_mission_4/readme.md: -------------------------------------------------------------------------------- 1 | # Weekly Mission 4 2 | -------------------------------------------------------------------------------- /weekly_mission_5/readme.md: -------------------------------------------------------------------------------- 1 | # Weekly Mission 5 2 | -------------------------------------------------------------------------------- /weekly_mission_6/readme.md: -------------------------------------------------------------------------------- 1 | # Weekly Mission 6 2 | -------------------------------------------------------------------------------- /weekly_mission_3/my_launchx_app/.gitignore: -------------------------------------------------------------------------------- 1 | **/node_modules -------------------------------------------------------------------------------- /weekly_mission_3/spiderverse/.gitignore: -------------------------------------------------------------------------------- 1 | **/node_modules -------------------------------------------------------------------------------- /weekly_mission_1/example7/main_2.js: -------------------------------------------------------------------------------- 1 | import { log } from './logger.js' 2 | 3 | log('Hello world') 4 | -------------------------------------------------------------------------------- /weekly_mission_1/example7/main.js: -------------------------------------------------------------------------------- 1 | import * as loggerModule from './logger.js' 2 | 3 | console.log(loggerModule) 4 | -------------------------------------------------------------------------------- /weekly_mission_1/example10/main.js: -------------------------------------------------------------------------------- 1 | import MyPokemon from './pokemon.js' 2 | 3 | const pikachu = new MyPokemon('Pikachu') 4 | pikachu.sayHello() 5 | -------------------------------------------------------------------------------- /weekly_mission_1/example8/main_2.js: -------------------------------------------------------------------------------- 1 | /* Importando el módulo */ 2 | import * as loggerModule from './logger.js' 3 | 4 | console.log(loggerModule) 5 | -------------------------------------------------------------------------------- /weekly_mission_1/example7/main_module.js: -------------------------------------------------------------------------------- 1 | /* Importando el módulo */ 2 | import * as loggerModule from './logger.js' 3 | 4 | console.log(loggerModule) 5 | -------------------------------------------------------------------------------- /weekly_mission_1/example8/main.js: -------------------------------------------------------------------------------- 1 | // Importando la clase MyLogger 2 | import MyLogger from './logger.js' 3 | 4 | const logger = new MyLogger('info') 5 | logger.log('Hello World') 6 | -------------------------------------------------------------------------------- /weekly_mission_3/my_launchx_app/index.js: -------------------------------------------------------------------------------- 1 | const MissionCommander = require('./app/missionCommander'); 2 | const carlo = new MissionCommander("Carlo") 3 | console.log(carlo.name) 4 | -------------------------------------------------------------------------------- /weekly_mission_1/example2/main.js: -------------------------------------------------------------------------------- 1 | // node main.js 2 | 3 | const logger = require('./logger') 4 | 5 | logger.info('This is an informational message') 6 | logger.verbose('This is a verbose message') 7 | -------------------------------------------------------------------------------- /weekly_mission_1/example6/main.js: -------------------------------------------------------------------------------- 1 | require('./patcher') // Llamas este módulo que modifica el objeto instanciado 2 | const logger = require('./logger') // Al llamar el módulo en logger.js te dará el objeto modificado 3 | 4 | logger.customMessage() 5 | -------------------------------------------------------------------------------- /weekly_mission_2/1 Objetos/1_1_Objetos.js: -------------------------------------------------------------------------------- 1 | console.log("Objetos") 2 | 3 | // Ejemplo 1: Crear un objeto 4 | const myObject = {} // Esto es un objeto vacío 5 | console.log("Ejemplo 1: Crear un objeto pelón o vacío") 6 | console.log(myObject) 7 | 8 | -------------------------------------------------------------------------------- /weekly_mission_3/my_launchx_app/app/missionCommander.js: -------------------------------------------------------------------------------- 1 | class MissionCommander { 2 | constructor (name) { 3 | this.name = name 4 | } 5 | } 6 | 7 | // Esta línea nos permite exportar nuestra clase 8 | module.exports = MissionCommander -------------------------------------------------------------------------------- /weekly_mission_1/example3/main.js: -------------------------------------------------------------------------------- 1 | /* 2 | node main.js 3 | */ 4 | 5 | const logger1 = require('./logger_1') 6 | const logger2 = require('./logger_2') 7 | 8 | logger1('This is an informational message') 9 | logger2.verbose('This is a verbose message') 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Launch X Node JS Playbook 🚀 de @RodolfoBaume 2 | 3 | image 4 | 5 | Repositorio para guardar las prácticas de Launch X. 6 | -------------------------------------------------------------------------------- /weekly_mission_2/1 Objetos/1_2_Objetos.js: -------------------------------------------------------------------------------- 1 | console.log("Objetos") 2 | 3 | // Ejemplo 2: Crear un objeto con propiedades 4 | const myObject2 = { 5 | name: "Rodolfo", 6 | age: 46 7 | } 8 | console.log("Ejemplo 2: Crear un objeto con propiedades") 9 | console.log(myObject2) 10 | 11 | -------------------------------------------------------------------------------- /weekly_mission_1/example10/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "esm-syntax", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "main.js", 6 | "type": "module", 7 | "scripts": { 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC" 13 | } -------------------------------------------------------------------------------- /weekly_mission_1/example8/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "esm-syntax", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "main.js", 6 | "type": "module", 7 | "scripts": { 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC" 13 | } -------------------------------------------------------------------------------- /weekly_mission_1/example7/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "esm-syntax", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "main.js", 6 | "type": "module", 7 | "scripts": { 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC" 13 | } 14 | -------------------------------------------------------------------------------- /weekly_mission_3/spiderverse/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "spiderverse", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "node ./node_modules/jest/bin/jest" 8 | }, 9 | "author": "RodolfoBaume", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "jest": "^27.5.1" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /weekly_mission_1/example8/logger.js: -------------------------------------------------------------------------------- 1 | /* 2 | export default nos permite exportar esta clase e importara 3 | 4 | import MyLogger from './logger.js' 5 | */ 6 | 7 | export default class Logger { 8 | constructor (name) { 9 | this.name = name 10 | } 11 | 12 | log (message) { 13 | console.log(`[${this.name}] ${message}`) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /weekly_mission_1/example3/logger_1.js: -------------------------------------------------------------------------------- 1 | /* 2 | Esto también es la declaración de una función 3 | 4 | module.exports hará que puedas invocar esta función en otro script como: 5 | > const logger = require('./logger') 6 | 7 | y usarla como: 8 | 9 | > logger("Heeey!") 10 | */ 11 | 12 | module.exports = (message) => { 13 | console.log(`info: ${message}`) 14 | } -------------------------------------------------------------------------------- /weekly_mission_1/example5/main.js: -------------------------------------------------------------------------------- 1 | const logger = require('./logger') 2 | 3 | // Ya se puede usar directamente el objeto instanciado en el módulo logger 4 | logger.log('This is an informational message') 5 | 6 | /* 7 | También pueder instanciar uno nuevo de esta manera: 8 | const customLogger = new logger.constructor('CUSTOM') 9 | customLogger.log('This is an informational message') 10 | */ -------------------------------------------------------------------------------- /weekly_mission_1/example6/logger.js: -------------------------------------------------------------------------------- 1 | class Logger { 2 | constructor (name) { 3 | this.count = 0 4 | this.name = name 5 | } 6 | 7 | log (message) { 8 | this.count++ 9 | console.log('[' + this.name + '] ' + message) 10 | } 11 | } 12 | 13 | module.exports = new Logger('DEFAULT') // Nuevo objeto instanciado 14 | module.exports.Logger = Logger // Clase 15 | -------------------------------------------------------------------------------- /weekly_mission_1/example6/patcher.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Ten en cuenta: 3 | * - require('./logger') te dará el objeto creado 4 | * - require('./logger').Logger te regresará la clase 5 | * 6 | * En este caso estamos agregando una función más al objeto instanciado, no a la clase. 7 | * */ 8 | require('./logger').customMessage = function () { 9 | console.log('This is a new functionality') 10 | } 11 | -------------------------------------------------------------------------------- /weekly_mission_2/1 Objetos/1_5_Objetos.js: -------------------------------------------------------------------------------- 1 | console.log("Objetos") 2 | 3 | 4 | // Ejemplo 5: Objeto con método que recibe parámetros 5 | const myPet = { 6 | name: "Woopa", 7 | sayHelloToMyPet: function(yourPet){ 8 | console.log(`${this.name} say's hello to ${yourPet}`) 9 | } 10 | } 11 | 12 | console.log("Ejemplo 5: Objeto con método que recibe parámetros") 13 | myPet.sayHelloToMyPet("Reboton") -------------------------------------------------------------------------------- /weekly_mission_3/my_launchx_app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my_launchx_app", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "node ./node_modules/jest/bin/jest.js", 8 | "start": "node index.js" 9 | }, 10 | "author": "RodolfoBaume", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "jest": "^27.5.1" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /weekly_mission_2/1 Objetos/1_4_Objetos.js: -------------------------------------------------------------------------------- 1 | console.log("Objetos") 2 | 3 | // Ejemplo 4: Objeto con métodos 4 | const pet = { 5 | name: "Reboton", 6 | // Esta es una función que se guarda como propiedad 7 | sayHello: function(){ 8 | // this.name hace referencia a la propiedad del objeto 9 | console.log(`${this.name} te saluda en perruno!`) 10 | } 11 | } 12 | 13 | console.log("Ejemplo 4: Objeto con métodos") 14 | pet.sayHello() 15 | -------------------------------------------------------------------------------- /weekly_mission_1/example4/main.js: -------------------------------------------------------------------------------- 1 | const Logger = require('./logger') // Invocas el módulo que contiene la clase 2 | 3 | // Creación de un objeto 4 | const dbLogger = new Logger('DB') // Creas un objeto nuevo, esto llama por default el constructor de la clase 5 | // invocación del método 6 | dbLogger.info('This is an informational message') 7 | 8 | // Creación de otro objeto 9 | const accessLogger = new Logger('ACCESS') 10 | accessLogger.verbose('This is a verbose message') 11 | -------------------------------------------------------------------------------- /weekly_mission_1/example5/logger.js: -------------------------------------------------------------------------------- 1 | class Logger { 2 | constructor(name){ 3 | // Al crear este objeto se guardarán estos valores 4 | this.count = 0 5 | this.name = name 6 | } 7 | 8 | log(message) { 9 | this.count++ // se aumenta el contador interno al llamar este método 10 | console.log('[' + this.name + '] ' + message) 11 | } 12 | } 13 | 14 | module.exports = new Logger('DEFAULT') // Instanciación del objeto y se exporta 15 | -------------------------------------------------------------------------------- /weekly_mission_3/spiderverse/app/spiderman.js: -------------------------------------------------------------------------------- 1 | class Spiderman { 2 | constructor(name, age, actor, movies, studio){ 3 | this.name = name 4 | this.age = age 5 | this.actor = actor 6 | this.movies = movies 7 | this.studio = studio 8 | } 9 | getInfo(){ 10 | return `Hey, I'm ${this.actor} from ${this.studio} studio` 11 | } 12 | } 13 | 14 | // Esta línea nos permite exportar nuestra clase 15 | module.exports = Spiderman -------------------------------------------------------------------------------- /weekly_mission_1/example3/logger_2.js: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | Al exportar una función/objeto así: 4 | 5 | > module.exports.verbose 6 | 7 | Estaremos exportando el contenido con el nombre `verbose` 8 | 9 | module.exports hará que puedas invocar esta función en otro script como: 10 | > const logger = require('./logger') 11 | 12 | y usarla como: 13 | 14 | > logger.verbose("Heeey!") 15 | */ 16 | 17 | module.exports.verbose = (message) => { 18 | console.log(`verbose: ${message}`) 19 | } -------------------------------------------------------------------------------- /weekly_mission_1/example9/main.js: -------------------------------------------------------------------------------- 1 | const Pokemon = require('./pokemon') 2 | 3 | const pikachu = new Pokemon("pikachu") 4 | const bulbasaur = new Pokemon("bulbasaur") 5 | const squirtle = new Pokemon("squirtle") 6 | const charmander = new Pokemon("charmander") 7 | 8 | pikachu.sayHello() 9 | pikachu.sayMessage("Heey!") 10 | 11 | bulbasaur.sayHello() 12 | bulbasaur.sayMessage("Heey!") 13 | 14 | charmander.sayHello() 15 | charmander.sayMessage("Heey!") 16 | 17 | squirtle.sayHello() 18 | squirtle.sayMessage("Heey!") 19 | -------------------------------------------------------------------------------- /weekly_mission_1/example2/logger.js: -------------------------------------------------------------------------------- 1 | // logger.js 2 | 3 | // Esta es una función que se guardara en este módulo como info 4 | exports.info = (message) => { 5 | console.log(`info: ${message}`) 6 | } 7 | 8 | // Esta es una función que se guardara en este módulo como verbose 9 | exports.verbose = (message) => { 10 | console.log(`verbose: ${message}`) 11 | } 12 | 13 | /* 14 | const logger = require('./logger') 15 | logger.info('This is an informational message') 16 | logger.verbose('This is a verbose message') 17 | * */ 18 | -------------------------------------------------------------------------------- /weekly_mission_2/1 Objetos/1_3_Objetos.js: -------------------------------------------------------------------------------- 1 | console.log("Objetos") 2 | 3 | // Ejemplo 3: Objeto con diferentes propiedades 4 | const myObject3 = { 5 | name: "Reboton", 6 | age: 6, 7 | nicknames: [ 8 | "Rebotas", 9 | "Rebotitas", 10 | "Peludo" 11 | ], 12 | address: { 13 | zip_code: "42020", 14 | street: "Calle 4, Real de Medinas", 15 | city: "Pachuca" 16 | } 17 | } 18 | console.log("Ejemplo 3: Objeto con diferentes propiedades") 19 | console.log(myObject3) 20 | console.log(myObject3.name) 21 | console.log(myObject3["address"]) 22 | -------------------------------------------------------------------------------- /weekly_mission_3/my_launchx_app/test/missionCommander.test.js: -------------------------------------------------------------------------------- 1 | const MissionCommander = require('./../app/missionCommander'); 2 | 3 | describe("Esto es una suite de pruebas", () => { 4 | test('Caso de prueba 1', () => { 5 | const result = 1 + 2 6 | expect(result).toBe(3); 7 | }); 8 | }) 9 | 10 | describe("Unit Tests for Mission Commander Class", () => { 11 | test('1) Create a mission commander objet', () => { 12 | const myMissionCommander = new MissionCommander("Woopa") 13 | expect(myMissionCommander.name).toBe("Woopa"); 14 | }); 15 | }) -------------------------------------------------------------------------------- /weekly_mission_3/readme.md: -------------------------------------------------------------------------------- 1 | # Weekly Mission 3 2 | 3 | # Semana 3 4 | 5 | Proyectos desarrollados en la semana 3: 6 | 7 | | Proyecto | Práctica | Link al repo | 8 | | ------------- |:-------------:| -----:| 9 | |`my_launchx_app`|1|[Link al repo](https://github.com/RodolfoBaume/my_launchx_app.git)| 10 | |`spiderverse`|2|[Link al repo](https://github.com/RodolfoBaume/spiderverse.git)| 11 | |`twitter`|3, 4, 5|[Link al repo](https://github.com/RodolfoBaume/twitter_LaunchX.git)| 12 | |`express_basic`|6|[Link al repo](https://github.com/RodolfoBaume/express_basic.git)| 13 | |`express_api`|7|[Link al repo](https://github.com/RodolfoBaume/express_api.git)| 14 | -------------------------------------------------------------------------------- /weekly_mission_1/example10/pokemon.js: -------------------------------------------------------------------------------- 1 | export default class Pokemon { 2 | constructor(name) { 3 | // this es una variable para referenciar el valor del contexto local de esta clase 4 | this.name = name // Estás variables se le conocen como atributos 5 | } 6 | 7 | // método 8 | // this.name es la variable que se guarda en el contexto local 9 | // message es una variable que se le pasa al ejecutar este método 10 | sayHello () { 11 | console.log(`Mi pokemon ${this.name} te saluda!!!`) 12 | } 13 | 14 | // método 15 | sayMessage (message) { 16 | console.log(`Mi pokemon ${this.name} dice: ${message}`) 17 | } 18 | } 19 | 20 | -------------------------------------------------------------------------------- /weekly_mission_1/example9/pokemon.js: -------------------------------------------------------------------------------- 1 | class Pokemon { 2 | constructor(name) { 3 | // this es una variable para referenciar el valor del contexto local de esta clase 4 | this.name = name // Estás variables se le conocen como atributos 5 | } 6 | 7 | // método 8 | // this.name es la variable que se guarda en el contexto local 9 | // message es una variable que se le pasa al ejecutar este método 10 | sayHello () { 11 | console.log(`Mi pokemon ${this.name} te saluda!!!`) 12 | } 13 | 14 | // método 15 | sayMessage (message) { 16 | console.log(`Mi pokemon ${this.name} dice: ${message}`) 17 | } 18 | } 19 | 20 | // Esta clase se exporta en este módulo 21 | module.exports = Pokemon 22 | -------------------------------------------------------------------------------- /weekly_mission_1/example4/logger.js: -------------------------------------------------------------------------------- 1 | class Logger { 2 | constructor(name) { 3 | // this es una variable para referenciar el valor del contexto local de esta clase 4 | this.name = name // Estás variables se le conocen como atributos 5 | } 6 | 7 | // método 8 | // this.name es la variable que se guarda en el contexto local 9 | // message es una variable que se le pasa al ejecutar este método 10 | info (message) { 11 | console.log(`[Objeto con nombre: ${this.name}] info: ${message}`) 12 | } 13 | 14 | // método 15 | verbose (message) { 16 | console.log(`[Objeto con nombre: ${this.name}] verbose: ${message}`) 17 | } 18 | } 19 | 20 | // Esta clase se exporta en este módulo 21 | module.exports = Logger 22 | -------------------------------------------------------------------------------- /weekly_mission_1/example7/logger.js: -------------------------------------------------------------------------------- 1 | /* 2 | Este modulo se comporta como si fuera un objeto que contiene todo lo definido 3 | 4 | [Module: null prototype] { 5 | DEFAULT_LEVEL: 'info', 6 | LEVELS: { error: 0, debug: 1, warn: 2, data: 3, info: 4, verbose: 5 }, 7 | Logger: [class Logger], 8 | log: [Function: log] 9 | } 10 | 11 | */ 12 | 13 | // exports a function 14 | export function log (message) { 15 | console.log(message) 16 | } 17 | 18 | // exports a constant 19 | export const DEFAULT_LEVEL = 'info' 20 | 21 | // exports an object 22 | export const LEVELS = { 23 | error: 0, 24 | debug: 1, 25 | warn: 2, 26 | data: 3, 27 | info: 4, 28 | verbose: 5 29 | } 30 | 31 | // exports a class 32 | export class Logger { 33 | constructor (name) { 34 | this.name = name 35 | } 36 | 37 | log (message) { 38 | console.log(`[${this.name}] ${message}`) 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /weekly_mission_1/example1/main.js: -------------------------------------------------------------------------------- 1 | // 1. Creación de un objeto con propiedades 2 | 3 | let myCar = new Object(); // Creación de un objeto 4 | myCar.make = 'Ford'; // Guardando un valor dentro del objeto creado 5 | myCar.model = 'Mustang'; 6 | myCar.year = 1969; 7 | 8 | console.log(myCar) // Imprimiendo objeto 9 | 10 | // 2. Declaración de un objeto con variables locales y públicas 11 | 12 | const myModule = (() => { 13 | 14 | // Variables de contexto local 15 | const privateFoo = "Soy un valor privado, solo me usan dentro de este objeto" 16 | const privateBar = [1,2,3,4] 17 | const baz = "Soy un valor que va a ser expuesto" 18 | 19 | // Variable para guardar las variables locales 20 | const exported = { 21 | publicFoo: "Valor público, pueden verme desde donde me llamen", 22 | publicBar: "Otro valor público", 23 | publicBaz: baz 24 | } 25 | 26 | // Exposición de variables locales 27 | return exported 28 | })() 29 | 30 | console.log(myModule) -------------------------------------------------------------------------------- /weekly_mission_3/spiderverse/test/spiderman.test.js: -------------------------------------------------------------------------------- 1 | const Spiderman = require('./../app/spiderman') 2 | 3 | describe("Unit test for Spiderman", () => { 4 | test('1) Create an spiderman object', () => { 5 | // Aquí escribimos el código qu queremos usar tal cúal 6 | // Quiero poder instanciar un objero Spiderman con esta información 7 | const andrewGarfield = new Spiderman("Spiderman Sony", 31, "Andrew Garfield", 2, "Sony") 8 | 9 | //Validamos que este código funcione de la forma esperada 10 | expect(andrewGarfield.name).toBe("Spiderman Sony") 11 | expect(andrewGarfield.age).toBe(31) 12 | expect(andrewGarfield.actor).toBe("Andrew Garfield") 13 | expect(andrewGarfield.movies).toBe(2) 14 | expect(andrewGarfield.studio).toBe("Sony") 15 | }); 16 | test('2) Use the method getInfo()', ()=> { 17 | const tomHolland = new Spiderman("Spiderman Marvel", 25, "Tom Holland", 5, "Marvel") 18 | expect(tomHolland.getInfo()).toBe("Hey, I'm Tom Holland from Marvel studio") 19 | }); 20 | }) -------------------------------------------------------------------------------- /weekly_mission_2/example2/example2.js: -------------------------------------------------------------------------------- 1 | const explorers = [ 2 | { 3 | name: "Explorer 1", 4 | exercises_completed: 10, 5 | rate: 99, 6 | city: "CDMX", 7 | stack: [ 8 | "js", 9 | "c#" 10 | ], 11 | missions: { 12 | onboarding: { 13 | isFinished: true, 14 | exercisesFinished: true 15 | }, 16 | frontend: { 17 | isFinished: true, 18 | exercisesFinished: true 19 | } 20 | } 21 | }, 22 | { 23 | name: "Explorer 2", 24 | exercises_completed: 9, 25 | city: "Veracruz", 26 | rate: 50, 27 | stack: [ 28 | "js" 29 | ], 30 | missions: { 31 | onboarding: { 32 | isFinished: false, 33 | exercisesFinished: false 34 | }, 35 | frontend: { 36 | isFinished: false, 37 | exercisesFinished: false 38 | } 39 | } 40 | }, 41 | { 42 | name: "Explorer 3", 43 | exercises_completed: 3, 44 | city: "Sonora", 45 | rate: 100, 46 | stack: [ 47 | "elixir" 48 | ], 49 | missions: { 50 | onboarding: { 51 | isFinished: true, 52 | exercisesFinished: true 53 | }, 54 | frontend: { 55 | isFinished: false, 56 | exercisesFinished: false 57 | } 58 | } 59 | } 60 | ] 61 | 62 | console.log(explorers) 63 | 64 | console.log("Ejercicio 2.1") 65 | explorers.forEach( explorer => console.log(explorer.name)) 66 | 67 | console.log("Ejercicio 2.2") 68 | explorers.forEach(item => console.log(item.stack) ) 69 | 70 | console.log("Ejercicio 2.3 'Map'") 71 | const explorers_stacks = explorers.map(my_explorer_in_list => my_explorer_in_list.stack) 72 | console.log(explorers_stacks) 73 | 74 | console.log("Ejercicio 2.4 'Filter'") 75 | const explorers_with_js = explorers.filter(my_explorer_in_list => my_explorer_in_list.stack.includes("js")) 76 | console.log(explorers_with_js) 77 | 78 | console.log("Ejercicio 2.5 'Find") 79 | const first_explorer_in_CDMX = explorers.find(my_explorer_in_list => my_explorer_in_list.city === "CDMX") 80 | console.log(first_explorer_in_CDMX) --------------------------------------------------------------------------------