2024-04-10 21:53:51 -06:00
// ********************** Initialize server **********************************
2024-05-03 00:36:01 -06:00
const server = require ( "../src/index.js" ) ; //TODO: Make sure the path to your index.js is correctly added
2024-04-10 21:53:51 -06:00
// ********************** Import Libraries ***********************************
2024-05-03 00:36:01 -06:00
const chai = require ( "chai" ) ; // Chai HTTP provides an interface for live integration testing of the API's.
const chaiHttp = require ( "chai-http" ) ;
2024-04-10 21:53:51 -06:00
chai . should ( ) ;
chai . use ( chaiHttp ) ;
2024-05-03 00:36:01 -06:00
const { assert , expect } = chai ;
2024-04-10 21:53:51 -06:00
// ********************** DEFAULT WELCOME TESTCASE ****************************
2024-05-03 00:36:01 -06:00
describe ( "Server!" , ( ) => {
// Sample test case given to test / endpoint.
it ( "Returns the default welcome message" , ( done ) => {
chai
. request ( server )
. get ( "/welcome" )
. end ( ( err , res ) => {
expect ( res ) . to . have . status ( 200 ) ;
expect ( res . body . status ) . to . equals ( "success" ) ;
assert . strictEqual ( res . body . message , "Welcome!" ) ;
done ( ) ;
} ) ;
} ) ;
2024-04-10 21:53:51 -06:00
} ) ;
// *********************** TODO: WRITE 2 UNIT TESTCASES **************************
// ********************************************************************************
2024-05-03 00:36:01 -06:00
describe ( "Testing Add User API" , ( ) => {
it ( "positive: /register" , ( done ) => {
// Define mock user data
const userData = {
username : "Test User" ,
password : "123456" ,
} ;
// Make a POST request to /register with mock user data
chai
. request ( server )
. post ( "/register" )
. send ( userData )
. end ( ( err , res ) => {
// Assertions
expect ( res ) . to . have . status ( 200 ) ;
done ( ) ;
} ) ;
} ) ;
} ) ;
2024-04-10 21:53:51 -06:00
2024-05-03 00:36:01 -06:00
//We are checking POST /add_user API by passing the user info in in incorrect manner (name cannot be an integer). This test case should pass and return a status 400 along with a "Invalid input" message.
2024-04-10 21:53:51 -06:00
2024-05-03 00:36:01 -06:00
describe ( "Testing Add User API" , ( ) => {
it ( "Negative: /register. Checking invalid name" , ( done ) => {
chai
. request ( server )
. post ( "/register" )
. send ( { Username : 10 , Password : "2020-02-20" } )
. end ( ( err , res ) => {
// Assertions
expect ( res ) . to . have . status ( 400 ) ;
expect ( res . body . message ) . to . equals ( "Invalid input" ) ;
done ( ) ;
} ) ;
} ) ;
} ) ;
2024-04-10 21:53:51 -06:00
2024-05-03 00:36:01 -06:00
describe ( "Testing Render" , ( ) => {
// Sample test case given to test /test endpoint.
it ( 'test "/login" route should render with an html response' , ( done ) => {
chai
. request ( server )
. get ( "/login" ) // for reference, see lab 8's login route (/login) which renders home.hbs
. end ( ( err , res ) => {
res . should . have . status ( 200 ) ; // Expecting a success status code
res . should . be . html ; // Expecting a HTML response
done ( ) ;
} ) ;
} ) ;
} ) ;
var cookies ;
2024-04-10 22:22:01 -06:00
2024-05-03 00:36:01 -06:00
describe ( "Login" , ( ) => {
// Sample test case given to test /login endpoint.
it ( "Returns the default welcome message" , ( done ) => {
chai
. request ( server )
. get ( "/login" )
. end ( ( err , res ) => {
if ( res . headers [ "set-cookie" ] ) {
// Save the cookies
cookies = res . headers [ "set-cookie" ] . pop ( ) . split ( ";" ) [ 0 ] ;
} else {
cookies = null ;
}
done ( ) ;
} ) ;
} ) ;
} ) ;
describe ( "Home" , ( ) => {
// Sample test case given to test /login endpoint.
it ( "Returns the default welcome message" , ( done ) => {
chai
. request ( server )
. get ( "/home" )
. end ( ( err , res ) => {
if ( res . headers [ "set-cookie" ] ) {
// Save the cookies
cookies = res . headers [ "set-cookie" ] . pop ( ) . split ( ";" ) [ 0 ] ;
} else {
cookies = null ;
}
done ( ) ;
} ) ;
} ) ;
} ) ;