Skip to main content

M220JS: MongoDB for Javascript Developers

MongoDB with node.js

Notes while taking M220JS: MongoDB for Javascript Developers - Learn the essentials of Node.js application development with MongoDB.

Chapter 1: Driver Setup

Test database connection

PS F:\Projects\mflix-js> npm test -t db-connection

> server@1.0.0 test F:\Projects\mflix-js
> jest --passWithNoTests "db-connection"

Determining test suites to run...Setup Mongo Connection
 PASS  test/db-connection.test.js
  Connection
    √ Can access MFlix data (360ms)
    √ Can retrieve a movie by id (60ms)
    √ Can retrieve first page of movies (267ms)

Test Suites: 1 passed, 1 total
Tests:       3 passed, 3 total
Snapshots:   0 total
Time:        3.337s, estimated 4s
Ran all test suites matching /db-connection/i.
Teardown Mongo Connection
PS F:\Projects\mflix-js>

Ticket: Projection

PS F:\Projects\mflix-js> npm test -t projection

> server@1.0.0 test F:\Projects\mflix-js
> jest --passWithNoTests "projection"

Determining test suites to run...Setup Mongo Connection
  console.log src/dao/moviesDAO.js:58
    Passed argument countries: Kosovo

  console.log src/dao/moviesDAO.js:58
    Passed argument countries: Russia,Japan,Mexico

 PASS  test/projection.test.js (5.994s)
  Projection
    √ Can perform a country search for one country (643ms)
    √ Can perform a country search for three countries (781ms)

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        6.566s, estimated 9s
Ran all test suites matching /projection/i.
Teardown Mongo Connection
PS F:\Projects\mflix-js>

Ticket: Text and Subfield Search

PS F:\Projects\mflix-js> npm test -t text-subfield

> server@1.0.0 test F:\Projects\mflix-js
> jest --passWithNoTests "text-subfield"

Determining test suites to run...Setup Mongo Connection
 PASS  test/text-subfield.test.js (5.126s)
  Text and Subfield Search
    √ Can perform a text search (481ms)
    √ Can perform a genre search with one genre (371ms)
    √ Can perform a genre search with multiple genres (281ms)
    √ Can perform a cast search with one cast member (171ms)
    √ Can perform a cast search with multiple cast members (275ms)
    √ Can perform a search and return a non-default number of movies per page (403ms)

Test Suites: 1 passed, 1 total
Tests:       6 passed, 6 total
Snapshots:   0 total
Time:        5.711s
Ran all test suites matching /text-subfield/i.
Teardown Mongo Connection
PS F:\Projects\mflix-js>

Chapter 2: User-Facing Backend

Ticket: Paging

PS D:\projects\mflix-js> npm test -t paging

> server@1.0.0 test D:\projects\mflix-js
> jest --passWithNoTests "paging"

Determining test suites to run...Setup Mongo Connection
 PASS  test/paging.test.js (6.534s)
  Paging
    √ Supports paging by cast (1534ms)
    √ Supports paging by genre (837ms)
    √ Supports paging by text (223ms)

Test Suites: 1 passed, 1 total
Tests:       3 passed, 3 total
Snapshots:   0 total
Time:        7.138s
Ran all test suites matching /paging/i.
Teardown Mongo Connection
PS D:\projects\mflix-js>

Ticket: Faceted Search

PS D:\projects\mflix-js> npm test -t facets

> server@1.0.0 test D:\projects\mflix-js
> jest --passWithNoTests "facets"       

Determining test suites to run...Setup Mongo Connection
 PASS  test/facets.test.js
  Facets
    √ should require cast members to perform search with (3ms)
    √ should return movies and runtime/rating facets for returned movies (579ms)
    √ should also support paging (199ms)
    √ should throw an error if castMembers is empty (4ms)

Test Suites: 1 passed, 1 total
Tests:       4 passed, 4 total
Snapshots:   0 total
Time:        3.559s, estimated 6s
Ran all test suites matching /facets/i.
Teardown Mongo Connection
PS D:\projects\mflix-js> 

Ticket: User Management

PS D:\projects\mflix-js> npm test -t user-management

> server@1.0.0 test D:\projects\mflix-js  
> jest --passWithNoTests "user-management"

Determining test suites to run...Setup Mongo Connection
 PASS  test/user-management.test.js
  User Management
    √ it can add a new user to the database (613ms)
    √ it returns an error when trying to register duplicate user (64ms)
    √ it allows a user to login (236ms)
    √ it allows a user to logout (130ms)

Test Suites: 1 passed, 1 total
Tests:       4 passed, 4 total
Snapshots:   0 total
Time:        5.441s
Ran all test suites matching /user-management/i.
Teardown Mongo Connection
PS D:\projects\mflix-js> 

Ticket: User Preferences

PS D:\projects\mflix-js> npm test -t user-preferences

> server@1.0.0 test D:\projects\mflix-js   
> jest --passWithNoTests "user-preferences"

Determining test suites to run...Setup Mongo Connection
 PASS  test/user-preferences.test.js (5.258s)
  User Preferences
    √ Invalid user should not have preferences (817ms)
    √ Null preferences should be valid (180ms)
    √ Valid preferences are reflected in DB (296ms)

Test Suites: 1 passed, 1 total
Tests:       3 passed, 3 total
Snapshots:   0 total
Time:        6.103s
Ran all test suites matching /user-preferences/i.
Teardown Mongo Connection
PS D:\projects\mflix-js> 

Ticket: Get Comments

PS D:\projects\mflix-js> npm test -t get-comments

> server@1.0.0 test D:\projects\mflix-js
> jest --passWithNoTests "get-comments"

Determining test suites to run...Setup Mongo Connection
 PASS  test/get-comments.test.js (5.274s)
  Get Comments
    √ Can fetch comments for a movie (573ms)
    √ comments should be sorted by date (126ms)

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        6.203s
Ran all test suites matching /get-comments/i.
Teardown Mongo Connection
PS D:\projects\mflix-js>

Ticket: Create/Update Comments

PS D:\projects\mflix-js> npm test -t create-update-comments

> server@1.0.0 test D:\projects\mflix-js
> jest --passWithNoTests "create-update-comments"

Determining test suites to run...Setup Mongo Connection
 PASS  test/create-update-comments.test.js
  Create/Update Comments
    √ Can post a comment (342ms)
    √ Can update a comment (119ms)
    √ Can only update comment if user posted comment (31ms)

Test Suites: 1 passed, 1 total
Tests:       3 passed, 3 total
Snapshots:   0 total
Time:        3.342s, estimated 5s
Ran all test suites matching /create-update-comments/i.
Teardown Mongo Connection
PS D:\projects\mflix-js> 

Ticket: Delete Comments

PS D:\projects\mflix-js> npm test -t delete-comments

> server@1.0.0 test D:\projects\mflix-js  
> jest --passWithNoTests "delete-comments"

Determining test suites to run...Setup Mongo Connection
 PASS  test/delete-comments.test.js
  Delete Comments
    √ Can post a comment (652ms)
    √ Cannot delete a comment if email does not match (114ms)
    √ Can delete a comment if email matches (59ms)

Test Suites: 1 passed, 1 total
Tests:       3 passed, 3 total
Snapshots:   0 total
Time:        5.274s
Ran all test suites matching /delete-comments/i.
Teardown Mongo Connection
PS D:\projects\mflix-js> 

Chapter 3: Admin Backend

Ticket: User Report

PS D:\projects\mflix-js> npm test -t user-report

> server@1.0.0 test D:\projects\mflix-js
> jest --passWithNoTests "user-report"  

Determining test suites to run...Setup Mongo Connection
 PASS  test/user-report.test.js (5.719s)
  User Report
    √ Should return exactly twenty results (1259ms)
    √ Should return correct comment totals (604ms)

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        6.345s
Ran all test suites matching /user-report/i.
Teardown Mongo Connection
PS D:\projects\mflix-js> 

Ticket: Migration

PS D:\projects\mflix-js> node .\src\migrations\movie-last-updated-migration.js
 Found 23539 documents to update
 23539 documents updated
PS D:\projects\mflix-js> 
PS D:\projects\mflix-js> npm test -t migration

> server@1.0.0 test D:\projects\mflix-js
> jest --passWithNoTests "migration"    

Determining test suites to run...Setup Mongo Connection
 PASS  test/migration.test.js (6.246s)
  Migration
    √ migration (384ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        7.461s
Ran all test suites matching /migration/i.
Teardown Mongo Connection
PS D:\projects\mflix-js> 

Chapter 4: Resiliency

Ticket: Connection Pooling

PS D:\projects\mflix-js> npm test -t connection-pooling 

> server@1.0.0 test D:\projects\mflix-js     
> jest --passWithNoTests "connection-pooling"

Determining test suites to run...Setup Mongo Connection
(node:13736) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } 
to the MongoClient constructor.
 PASS  test/connection-pooling.test.js
  Connection Pooling
    √ Connection pool size is 50 (57ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        5.079s
Ran all test suites matching /connection-pooling/i.
Teardown Mongo Connection
PS D:\projects\mflix-js>

Ticket: Timeouts

PS D:\projects\mflix-js> npm test -t timeouts

> server@1.0.0 test D:\projects\mflix-js
> jest --passWithNoTests "timeouts"     

Determining test suites to run...Setup Mongo Connection
 PASS  test/timeouts.test.js
  Timeouts
    √ Timeout is set to 2500 milliseconds (281ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        3.463s
Ran all test suites matching /timeouts/i.
Teardown Mongo Connection
PS D:\projects\mflix-js>

Popular posts from this blog

hmailserver: Notes from the field

hmailserver is one of free open source mail servers running on Microsoft Windows operating system.

stegseek: Notes

StegCracker has been retired following the release of StegSeek, which will blast through the rockyou.txt wordlist within 1.9 second as opposed to StegCracker which takes ~5 hours.

VMware ESXi host loads ipmi_si_drv too long

Workaround: remove ipmi_si_drv esxcli software vib remove --dry-run --vibname ipmi-ipmi-si-drv esxcli software vib remove --vibname ipmi-ipmi-si-drv ~ # esxcli software vib remove --dry-run --vibname ipmi-ipmi-si-drv Removal Result    Message: Dryrun only, host not changed. The following installers will be applied: [BootBankInstaller]    Reboot Required: true    VIBs Installed:    VIBs Removed: VMware_bootbank_ipmi-ipmi-si-drv_39.1-4vmw.550.0.0.1331820    VIBs Skipped: ~ # ~ # esxcli software vib remove --vibname ipmi-ipmi-si-drv Removal Result    Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.    Reboot Required: true    VIBs Installed:    VIBs Removed: VMware_bootbank_ipmi-ipmi-si-drv_39.1-4vmw.550.0.0.1331820    VIBs Skipped: ~ #