Skip to content

Instantly share code, notes, and snippets.

@stoneboyindc
Created January 8, 2020 15:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stoneboyindc/7d141df2fd31faf602c043d0a85c728c to your computer and use it in GitHub Desktop.
Save stoneboyindc/7d141df2fd31faf602c043d0a85c728c to your computer and use it in GitHub Desktop.
> express-boilerplate@1.0.0 migrate:test C:\code\thinkful\tc\ksdumont\blogful-api
> env NODE_ENV=test npm run migrate
'env' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! express-boilerplate@1.0.0 migrate:test: `env NODE_ENV=test npm run migrate`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the express-boilerplate@1.0.0 migrate:test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\changc16\AppData\Roaming\npm-cache\_logs\2020-01-08T15_48_39_351Z-debug.log
C:\code\thinkful\tc\ksdumont\blogful-api>npm run migrate:test
> express-boilerplate@1.0.0 migrate:test C:\code\thinkful\tc\ksdumont\blogful-api
> set NODE_ENV=test && npm run migrate
> express-boilerplate@1.0.0 migrate C:\code\thinkful\tc\ksdumont\blogful-api
> postgrator --config postgrator-config.js
[10:49:07 AM] version of database is: 2
[10:49:07 AM] migrating up to 2
[10:49:07 AM] verifying checksum of migration 001.do.create_blogful_articles.sql
[10:49:07 AM] verifying checksum of migration 002.do.alter_article_style.sql
C:\code\thinkful\tc\ksdumont\blogful-api>npm run migrate:test
> express-boilerplate@1.0.0 migrate:test C:\code\thinkful\tc\ksdumont\blogful-api
> set NODE_ENV=test && npm run migrate
> express-boilerplate@1.0.0 migrate C:\code\thinkful\tc\ksdumont\blogful-api
> postgrator --config postgrator-config.js
[10:50:10 AM] table schemaversion does not exist - creating it.
[10:50:10 AM] version of database is: 0
[10:50:10 AM] migrating up to 2
[10:50:10 AM] running 001.do.create_blogful_articles.sql
[10:50:11 AM] running 002.do.alter_article_style.sql
C:\code\thinkful\tc\ksdumont\blogful-api>npm run test
> express-boilerplate@1.0.0 test C:\code\thinkful\tc\ksdumont\blogful-api
> mocha --require test/setup.js
App
√ GET / responds with 200 containing "Hello, world!" (41ms)
Articles Endpoints
GET /articles
Given no articles
1) responds with 200 and an empty list
Given there are articles in the database
2) GET /articles responds with 200 and all of the articles
Given an XSS attack article
3) "before each" hook: insert malicious article for "removes XSS attack content"
GET /articles/:article_id
Given no articles
√ responds with 404
Given there are articles in the database
4) GET /article/:article_id responds with 200 and the specified article
Given an XSS attack article
√ removes XSS attack content
POST /articles
√ creates an article, responding with 201 and the new article
√ responds with 400 and an error message when the title is missing
√ responds with 400 and an error message when the style is missing
√ responds with 400 and an error message when the content is missing
√ removes XSS attack content from response
DELETE /articles/:article_id
Given there are articles in the database
5) responds with 204 and removes the article
Given no articles
√ responds with 404
9 passing (882ms)
5 failing
1) Articles Endpoints
GET /articles
Given no articles
responds with 200 and an empty list:
Error: expected [] response body, got [ { id: 911,
style: 'How-to',
title:
'Naughty naughty very naughty <script>alert("xss");</script>',
content:
'Bad image <img src="https://url.to.file.which/does-not.exist">. But not <strong>all</strong> bad.',
date_published: '2020-01-08T20:50:26.407Z' } ]
+ expected - actual
-[
- {
- "content": "Bad image <img src=\"https://url.to.file.which/does-not.exist\">. But not <strong>all</strong> bad." - "date_published": "2020-01-08T20:50:26.407Z"
- "id": 911
- "style": "How-to"
- "title": "Naughty naughty very naughty &lt;script&gt;alert(\"xss\");&lt;/script&gt;"
- }
-]
+[]
at error (node_modules\supertest\lib\test.js:301:13)
at Test._assertBody (node_modules\supertest\lib\test.js:205:14)
at Test._assertFunction (node_modules\supertest\lib\test.js:283:11)
at Test.assert (node_modules\supertest\lib\test.js:173:18)
at Server.localAssert (node_modules\supertest\lib\test.js:131:12)
at emitCloseNT (net.js:1618:8)
at process._tickCallback (internal/process/next_tick.js:63:19)
2) Articles Endpoints
GET /articles
Given there are articles in the database
GET /articles responds with 200 and all of the articles:
Error: expected [ { id: 1,
date_published: '2029-01-22T16:28:32.615Z',
title: 'First test post!',
style: 'How-to',
content:
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus consequuntur deserunt commodi, nobis qui inventore corrupti iusto aliquid debitis unde non.Adipisci, pariatur.Molestiae, libero esse hic adipisci autem neque ?' },
{ id: 2,
date_published: '2100-05-22T16:28:32.615Z',
title: 'Second test post!',
style: 'News',
content:
'Lorem ipsum dolor sit amet consectetur adipisicing elit. Cum, exercitationem cupiditate dignissimos est perspiciatis, nobis commodi alias saepe atque facilis labore sequi deleniti. Sint, adipisci facere! Velit temporibus debitis rerum.' },
{ id: 3,
date_published: '1919-12-22T16:28:32.615Z',
title: 'Third test post!',
style: 'Listicle',
content:
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus, voluptate? Necessitatibus, reiciendis? Cupiditate totam laborum esse animi ratione ipsa dignissimos laboriosam eos similique cumque. Est nostrum esse porro id quaerat.' },
{ id: 4,
date_published: '1919-12-22T16:28:32.615Z',
title: 'Fourth test post!',
style: 'Story',
content:
'Lorem ipsum dolor sit amet consectetur adipisicing elit. Earum molestiae accusamus veniam consectetur tempora, corporis obcaecati ad nisi asperiores tenetur, autem magnam. Iste, architecto obcaecati tenetur quidem voluptatum ipsa quam?' } ] response body, got [ { id: 911,
style: 'How-to',
title:
'Naughty naughty very naughty &lt;script&gt;alert("xss");&lt;/script&gt;',
content:
'Bad image <img src="https://url.to.file.which/does-not.exist">. But not <strong>all</strong> bad.',
date_published: '2020-01-08T20:50:26.407Z' },
{ id: 1,
style: 'How-to',
title: 'First test post!',
content:
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus consequuntur deserunt commodi, nobis qui inventore corrupti iusto aliquid debitis unde non.Adipisci, pariatur.Molestiae, libero esse hic adipisci autem neque ?',
date_published: '2029-01-22T21:28:32.615Z' },
{ id: 2,
style: 'News',
title: 'Second test post!',
content:
'Lorem ipsum dolor sit amet consectetur adipisicing elit. Cum, exercitationem cupiditate dignissimos est perspiciatis, nobis commodi alias saepe atque facilis labore sequi deleniti. Sint, adipisci facere! Velit temporibus debitis rerum.',
date_published: '2100-05-22T20:28:32.615Z' },
{ id: 3,
style: 'Listicle',
title: 'Third test post!',
content:
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus, voluptate? Necessitatibus, reiciendis? Cupiditate totam laborum esse animi ratione ipsa dignissimos laboriosam eos similique cumque. Est nostrum esse porro id quaerat.',
date_published: '1919-12-22T21:28:32.615Z' },
{ id: 4,
style: 'Story',
title: 'Fourth test post!',
content:
'Lorem ipsum dolor sit amet consectetur adipisicing elit. Earum molestiae accusamus veniam consectetur tempora, corporis obcaecati ad nisi asperiores tenetur, autem magnam. Iste, architecto obcaecati tenetur quidem voluptatum ipsa quam?',
date_published: '1919-12-22T21:28:32.615Z' } ]
+ expected - actual
[
{
- "content": "Bad image <img src=\"https://url.to.file.which/does-not.exist\">. But not <strong>all</strong> bad." - "date_published": "2020-01-08T20:50:26.407Z"
- "id": 911
- "style": "How-to"
- "title": "Naughty naughty very naughty &lt;script&gt;alert(\"xss\");&lt;/script&gt;"
- }
- {
"content": "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus consequuntur deserunt commodi, nobis qui inventore corrupti iusto aliquid debitis unde non.Adipisci, pariatur.Molestiae, libero esse hic adipisci autem neque ?"
- "date_published": "2029-01-22T21:28:32.615Z"
+ "date_published": "2029-01-22T16:28:32.615Z"
"id": 1
"style": "How-to"
"title": "First test post!"
}
{
"content": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Cum, exercitationem cupiditate dignissimos
est perspiciatis, nobis commodi alias saepe atque facilis labore sequi deleniti. Sint, adipisci facere! Velit temporibus debitis rerum."
- "date_published": "2100-05-22T20:28:32.615Z"
+ "date_published": "2100-05-22T16:28:32.615Z"
"id": 2
"style": "News"
"title": "Second test post!"
}
{
"content": "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus, voluptate? Necessitatibus, reiciendis? Cupiditate totam laborum esse animi ratione ipsa dignissimos laboriosam eos similique cumque. Est nostrum esse porro id quaerat."
- "date_published": "1919-12-22T21:28:32.615Z"
+ "date_published": "1919-12-22T16:28:32.615Z"
"id": 3
"style": "Listicle"
"title": "Third test post!"
}
{
"content": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Earum molestiae accusamus veniam consectetur tempora, corporis obcaecati ad nisi asperiores tenetur, autem magnam. Iste, architecto obcaecati tenetur quidem voluptatum ipsa quam?"
- "date_published": "1919-12-22T21:28:32.615Z"
+ "date_published": "1919-12-22T16:28:32.615Z"
"id": 4
"style": "Story"
"title": "Fourth test post!"
}
at error (node_modules\supertest\lib\test.js:301:13)
at Test._assertBody (node_modules\supertest\lib\test.js:205:14)
at Test._assertFunction (node_modules\supertest\lib\test.js:283:11)
at Test.assert (node_modules\supertest\lib\test.js:173:18)
at Server.localAssert (node_modules\supertest\lib\test.js:131:12)
at emitCloseNT (net.js:1618:8)
at process._tickCallback (internal/process/next_tick.js:63:19)
3) Articles Endpoints
GET /articles
Given an XSS attack article
"before each" hook: insert malicious article for "removes XSS attack content":
insert into "blogful_articles" ("content", "date_published", "id", "style", "title") values ($1, $2, $3, $4, $5) - duplicate key value violates unique constraint "blogful_articles_pkey"
error: duplicate key value violates unique constraint "blogful_articles_pkey"
at Connection.parseE (node_modules\pg\lib\connection.js:604:13)
at Connection.parseMessage (node_modules\pg\lib\connection.js:403:19)
at Socket.<anonymous> (node_modules\pg\lib\connection.js:123:22)
at addChunk (_stream_readable.js:288:12)
at readableAddChunk (_stream_readable.js:269:11)
at Socket.Readable.push (_stream_readable.js:224:10)
at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
4) Articles Endpoints
GET /articles/:article_id
Given there are articles in the database
GET /article/:article_id responds with 200 and the specified article:
Error: expected { id: 2,
date_published: '2100-05-22T16:28:32.615Z',
title: 'Second test post!',
style: 'News',
content:
'Lorem ipsum dolor sit amet consectetur adipisicing elit. Cum, exercitationem cupiditate dignissimos est perspiciatis, nobis commodi alias saepe atque facilis labore sequi deleniti. Sint, adipisci facere! Velit temporibus debitis rerum.' } response body, got { id: 2,
style: 'News',
title: 'Second test post!',
content:
'Lorem ipsum dolor sit amet consectetur adipisicing elit. Cum, exercitationem cupiditate dignissimos est perspiciatis, nobis commodi alias saepe atque facilis labore sequi deleniti. Sint, adipisci facere! Velit temporibus debitis rerum.',
date_published: '2100-05-22T20:28:32.615Z' }
+ expected - actual
{
"content": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Cum, exercitationem cupiditate dignissimos est perspiciatis, nobis commodi alias saepe atque facilis labore sequi deleniti. Sint, adipisci facere! Velit temporibus debitis rerum."
- "date_published": "2100-05-22T20:28:32.615Z"
+ "date_published": "2100-05-22T16:28:32.615Z"
"id": 2
"style": "News"
"title": "Second test post!"
}
at error (node_modules\supertest\lib\test.js:301:13)
at Test._assertBody (node_modules\supertest\lib\test.js:205:14)
at Test._assertFunction (node_modules\supertest\lib\test.js:283:11)
at Test.assert (node_modules\supertest\lib\test.js:173:18)
at Server.localAssert (node_modules\supertest\lib\test.js:131:12)
at emitCloseNT (net.js:1618:8)
at process._tickCallback (internal/process/next_tick.js:63:19)
5) Articles Endpoints
DELETE /articles/:article_id
Given there are articles in the database
responds with 204 and removes the article:
Error: expected [ { id: 1,
date_published: '2029-01-22T16:28:32.615Z',
title: 'First test post!',
style: 'How-to',
content:
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus consequuntur deserunt commodi, nobis qui inventore corrupti iusto aliquid debitis unde non.Adipisci, pariatur.Molestiae, libero esse hic adipisci autem neque ?' },
{ id: 3,
date_published: '1919-12-22T16:28:32.615Z',
title: 'Third test post!',
style: 'Listicle',
content:
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus, voluptate? Necessitatibus, reiciendis? Cupiditate totam laborum esse animi ratione ipsa dignissimos laboriosam eos similique cumque. Est nostrum esse porro id quaerat.' },
{ id: 4,
date_published: '1919-12-22T16:28:32.615Z',
title: 'Fourth test post!',
style: 'Story',
content:
'Lorem ipsum dolor sit amet consectetur adipisicing elit. Earum molestiae accusamus veniam consectetur tempora, corporis obcaecati ad nisi asperiores tenetur, autem magnam. Iste, architecto obcaecati tenetur quidem voluptatum ipsa quam?' } ] response body, got [ { id: 911,
style: 'How-to',
title:
'Naughty naughty very naughty &lt;script&gt;alert("xss");&lt;/script&gt;',
content:
'Bad image <img src="https://url.to.file.which/does-not.exist">. But not <strong>all</strong> bad.',
date_published: '2020-01-08T20:50:26.407Z' },
{ id: 1,
style: 'How-to',
title: 'First test post!',
content:
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus consequuntur deserunt commodi, nobis qui inventore corrupti iusto aliquid debitis unde non.Adipisci, pariatur.Molestiae, libero esse hic adipisci autem neque ?',
date_published: '2029-01-22T21:28:32.615Z' },
{ id: 3,
style: 'Listicle',
title: 'Third test post!',
content:
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus, voluptate? Necessitatibus, reiciendis? Cupiditate totam laborum esse animi ratione ipsa dignissimos laboriosam eos similique cumque. Est nostrum esse porro id quaerat.',
date_published: '1919-12-22T21:28:32.615Z' },
{ id: 4,
style: 'Story',
title: 'Fourth test post!',
content:
'Lorem ipsum dolor sit amet consectetur adipisicing elit. Earum molestiae accusamus veniam consectetur tempora, corporis obcaecati ad nisi asperiores tenetur, autem magnam. Iste, architecto obcaecati tenetur quidem voluptatum ipsa quam?',
date_published: '1919-12-22T21:28:32.615Z' } ]
+ expected - actual
[
{
- "content": "Bad image <img src=\"https://url.to.file.which/does-not.exist\">. But not <strong>all</strong> bad." - "date_published": "2020-01-08T20:50:26.407Z"
- "id": 911
- "style": "How-to"
- "title": "Naughty naughty very naughty &lt;script&gt;alert(\"xss\");&lt;/script&gt;"
- }
- {
"content": "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus consequuntur deserunt commodi, nobis qui inventore corrupti iusto aliquid debitis unde non.Adipisci, pariatur.Molestiae, libero esse hic adipisci autem neque ?"
- "date_published": "2029-01-22T21:28:32.615Z"
+ "date_published": "2029-01-22T16:28:32.615Z"
"id": 1
"style": "How-to"
"title": "First test post!"
}
{
"content": "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus, voluptate? Necessitatibus, reiciendis? Cupiditate totam laborum esse animi ratione ipsa dignissimos laboriosam eos similique cumque. Est nostrum esse porro id quaerat."
- "date_published": "1919-12-22T21:28:32.615Z"
+ "date_published": "1919-12-22T16:28:32.615Z"
"id": 3
"style": "Listicle"
"title": "Third test post!"
}
{
"content": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Earum molestiae accusamus veniam consectetur tempora, corporis obcaecati ad nisi asperiores tenetur, autem magnam. Iste, architecto obcaecati tenetur quidem voluptatum ipsa quam?"
- "date_published": "1919-12-22T21:28:32.615Z"
+ "date_published": "1919-12-22T16:28:32.615Z"
"id": 4
"style": "Story"
"title": "Fourth test post!"
}
at error (node_modules\supertest\lib\test.js:301:13)
at Test._assertBody (node_modules\supertest\lib\test.js:205:14)
at Test._assertFunction (node_modules\supertest\lib\test.js:283:11)
at Test.assert (node_modules\supertest\lib\test.js:173:18)
at Server.localAssert (node_modules\supertest\lib\test.js:131:12)
at emitCloseNT (net.js:1618:8)
at process._tickCallback (internal/process/next_tick.js:63:19)
npm ERR! code ELIFECYCLE
npm ERR! errno 5
npm ERR! express-boilerplate@1.0.0 test: `mocha --require test/setup.js`
npm ERR! Exit status 5
npm ERR!
npm ERR! Failed at the express-boilerplate@1.0.0 test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\changc16\AppData\Roaming\npm-cache\_logs\2020-01-08T15_50_27_380Z-debug.log
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment