test

test

by Maryam Saeidi

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.13.0/polyfill.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.0.2/mocha.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.5.0/chai.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.0.2/mocha.css">
<script src="http://sinonjs.org/releases/sinon-3.2.1.js"></script>
<div id="mocha"></div>

Babel + JSX

async function getUser(userId) {    
		var user = await fetch("http://ui-developer-backend.herokuapp.com/api/users/" + userId);
    return user.json();
} 

mocha.setup("bdd");
chai.should();
var assert = chai.assert,
		expect = chai.expect;

describe('getUser()', () => {
	let server;
  
	beforeEach(function() {
    server = sinon.fakeServer.create();
  });

  afterEach(function () {
    server.restore();
  });
  
  it('should return a user.', async () => {
    const response = await getUser(1);
    console.log("response:", response);
  });
  
  it('should return a user object', async () => {
  	const userId = 10;
    server.respondWith("GET", "http://ui-developer-backend.herokuapp.com/api/users/" + userId,[200, { "Content-Type": "application/json" },
                        '{ "id": "1", "username": "John", "avatar_url": "http://placekitten.com/g/300/300" }']);
  	const response = getUser(userId);
    server.respond();
    response.then(function(result){
      console.log("result:",result); //The code doesn't get here
      result.should.deep.equal({ "id": "1", "username": "John", "avatar_url": "http://placekitten.com/g/300/300" });
      });
  });
  
});

mocha.run();