Skip to content

Instantly share code, notes, and snippets.

View HasanGokce's full-sized avatar
🎯
Focusing

Hasan Gokce HasanGokce

🎯
Focusing
View GitHub Profile
@HasanGokce
HasanGokce / profile-test.js
Created December 17, 2020 14:34
Refactoring: Route Parameters
const {assert} = require('chai');
const request = require('supertest');
const {jsdom} = require('jsdom');
const app = require('../../app');
const parseTextFromHTML = (htmlAsString, selector) => {
const selectedElement = jsdom(htmlAsString).querySelector(selector);
if (selectedElement !== null) {
return selectedElement.textContent;
@HasanGokce
HasanGokce / gist:db21df39445cd49a47e26118c17a384c
Created December 17, 2020 14:31
Refactoring: Route Parameters "after"
const express = require('express');
const router = express.Router();
router.get('/:username', (req, res) => {
res.send('<h1 id="welcome-message">Welcome ' + req.params.username + '!</h1>');
});
router.get('/bob', (req, res) => {
res.send('<h1 id="welcome-message">Welcome ' + req.params.username + '!</h1>');
@HasanGokce
HasanGokce / profile.js
Created December 17, 2020 14:27
Refactoring: Route Parameters "before"
const express = require('express');
const router = express.Router();
router.get('/alice', (req, res) => {
res.send('<h1 id="welcome-message">Welcome alice!</h1>');
});
router.get('/bob', (req, res) => {
res.send('<h1 id="welcome-message">Welcome bob!</h1>');
@HasanGokce
HasanGokce / index-test.js
Created December 17, 2020 13:35
Response Content
const {assert} = require('chai');
const request = require('supertest');
const {jsdom} = require('jsdom');
const app = require('../../app');
const parseTextFromHTML = (htmlAsString, selector) => {
const selectedElement = jsdom(htmlAsString).querySelector(selector);
if (selectedElement !== null) {
return selectedElement.textContent;
@HasanGokce
HasanGokce / index.js
Created December 17, 2020 13:35
Response Content
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send('<h1 id="page-title">Messaging App</h1>');
});
module.exports = router;
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send() // This line add after test failure, red => green
});
module.exports = router;
const {assert} = require('chai');
const request = require('supertest');
const app = require('../../app');
describe('root page', () => {
describe('GET request', () => {
it('returns a 200 status', async () => {
const response = await request(app).
get('/');
@HasanGokce
HasanGokce / messages-test.js
Created December 10, 2020 08:45
Let’s take a look at a feature-level test and compare it to a corresponding server test in messages-test.js to the right:
const {assert} = require('chai');
const request = require('supertest');
const {jsdom} = require('jsdom');
const app = require('../../app');
const parseTextFromHTML = (htmlAsString, selector) => {
const selectedElement = jsdom(htmlAsString).querySelector(selector);
if (selectedElement !== null) {
return selectedElement.textContent;
@HasanGokce
HasanGokce / messages-feature-test.js
Created December 10, 2020 08:45
Let’s take a look at a feature-level test and compare it to a corresponding server test in messages-test.js to the right:
describe('posting a message', () => {
it('saves the message with the author information', () => {
const author = 'user name';
const message ='feature testing with TDD makes me feel empowered to create a better workflow';
browser.url('/');
browser.setValue('input[id=author]', author);
browser.setValue('textarea[id=message]', message);
browser.click('input[type=submit]');
@HasanGokce
HasanGokce / index-test.js
Created December 10, 2020 07:23
A test that makes use of all the technologies.
const {assert} = require('chai');
const request = require('supertest');
const {jsdom} = require('jsdom');
const app = require('../../app');
const parseTextFromHTML = (htmlAsString, selector) => {
const selectedElement = jsdom(htmlAsString).querySelector(selector);
if (selectedElement !== null) {
return selectedElement.textContent;