Skip to content

Instantly share code, notes, and snippets.

View grantcarthew's full-sized avatar
🙂
Coding

Grant Carthew grantcarthew

🙂
Coding
View GitHub Profile
// product.test.js
const axios = require('axios')
const driver = require('../src/store/driver')
const httpSetup = require('./setup/http-setup')
const log = require('../src/logger')
let listener
beforeAll(async function () {
await driver.connect(global.__MONGO_URI__)
@grantcarthew
grantcarthew / mongo-environment.js
Created March 2, 2019 04:13
medium-mongo-environment.js
// mongo-environment.js
const NodeEnvironment = require('jest-environment-node')
const path = require('path')
const fs = require('fs')
const globalConfigPath = path.join(__dirname, 'globalConfig.json')
const log = require('../../src/logger')
class MongoEnvironment extends NodeEnvironment {
constructor (config) {
super(config)
@grantcarthew
grantcarthew / db-setup.js
Created March 2, 2019 03:00
medium-db-setup.js
// db-setup.js
const path = require('path')
const fs = require('fs')
const { MongoMemoryServer } = require('mongodb-memory-server')
const driver = require('../../src/store/driver')
const initializeDb = require('../initialize-db')
const globalConfigPath = path.join(__dirname, 'globalConfig.json')
const mongod = new MongoMemoryServer({
@grantcarthew
grantcarthew / global-setup.js
Created March 2, 2019 02:46
medium-global-setup.js
// global-setup.js
const dbSetup = require('./db-setup')
module.exports = async function () {
await dbSetup()
}
@grantcarthew
grantcarthew / app.js
Last active March 1, 2019 03:49
medium-app.js
//app.js
// Constants
const MAX_CONTENT_LENGTH_ACCEPTED = 102400000
const COOKIESIGNSECRET = process.env.COOKIESIGNSECRET
// Core Modules
const express = require('express')
const bodyParser = require('body-parser')
const cookieParser = require('cookie-parser')
@grantcarthew
grantcarthew / package.json
Last active March 1, 2019 03:49
medium-package.json
// package.json <= JSON does not support comments. Remove this line.
{
"name": "example",
"version": "1.0.0",
"description": "Example for test script",
"main": "index.js",
"scripts": {
"test": "LOGENABLED=true LOGLEVEL=error DBCONNECTIONPOOLMAX=10 DBCONNECTIONPOOLIDLE=50 jest --watch"
},
"author": "",
@grantcarthew
grantcarthew / jest.config.js
Last active March 1, 2019 03:48
medium-jest.config.js
// jest.config.js
module.exports = {
clearMocks: true,
globalSetup: '<rootDir>/tests/setup/global-setup.js',
globalTeardown: '<rootDir>/tests/setup/global-teardown.js',
testEnvironment: '<rootDir>/tests/setup/mongo-environment.js'
}
@grantcarthew
grantcarthew / settings.json
Last active November 29, 2018 03:26
VSCode Settings Backup
{
"workbench.colorTheme": "Solarized Light",
"workbench.editor.closeEmptyGroups": false,
"explorer.openEditors.visible": 0,
"explorer.autoReveal": false,
"editor.tabSize": 2,
"gitlens.advanced.messages": {
"suppressCommitHasNoPreviousCommitWarning": false,
"suppressCommitNotFoundWarning": false,
"suppressFileNotUnderSourceControlWarning": false,

Mongoose Code Snippets

Targeted Version: 5.1.6

Find Or Create

This will update the document on every call. Not the best option however it is atomic.

Ref: findOneAndUpdate

Keybase proof

I hereby claim:

  • I am grantcarthew on github.
  • I am grantcarthew (https://keybase.io/grantcarthew) on keybase.
  • I have a public key ASDuPrBqZ8grywTAt2TXnQyIDDnwMbV_uyu4ZK62K8GFggo

To claim this, I am signing this object: