diff --git a/tests/helpers/createCacheEntry.js b/tests/helpers/createCacheEntry.js index 910b980..9a9ccd4 100644 --- a/tests/helpers/createCacheEntry.js +++ b/tests/helpers/createCacheEntry.js @@ -1,7 +1,5 @@ -const redisCache = require("../../src/cache/redis"); +import redisCache from "../../src/cache/redis.js"; -function createCacheEntry(key, value) { +export default function createCacheEntry(key, value) { return redisCache.set(key, value); } - -module.exports = createCacheEntry; diff --git a/tests/helpers/createToken.js b/tests/helpers/createToken.js index 6b4485d..cc661f4 100644 --- a/tests/helpers/createToken.js +++ b/tests/helpers/createToken.js @@ -1,10 +1,8 @@ -const User = require("../../src/user/user"); -const Token = require("../../src/user/token"); +import User from "../../src/user/user.js"; +import Token from "../../src/user/token.js"; -function createToken(username, secret) { +export default function createToken(username, secret) { const user = new User(username); const token = new Token(user); return token.toString(secret); } - -module.exports = createToken; diff --git a/tests/helpers/createUser.js b/tests/helpers/createUser.js index d4b72dd..9424ba7 100644 --- a/tests/helpers/createUser.js +++ b/tests/helpers/createUser.js @@ -1,11 +1,9 @@ -const User = require("../../src/user/user"); -const UserSecurity = require("../../src/user/userSecurity"); +import User from "../../src/user/user.js"; +import UserSecurity from "../../src/user/userSecurity.js"; -function createUser(username, password) { +export default function createUser(username, password) { const userSecurity = new UserSecurity(); const user = new User(username); return userSecurity.createNewUser(user, password); } - -module.exports = createUser; diff --git a/tests/helpers/resetDatabase.js b/tests/helpers/resetDatabase.js index ae202f4..c830864 100644 --- a/tests/helpers/resetDatabase.js +++ b/tests/helpers/resetDatabase.js @@ -10,13 +10,11 @@ // } // } -const establishedDatabase = require("../../src/database/database"); +import establishedDatabase from "../../src/database/database.js"; // const establishedDatabase = new EstablishedDatabase(); -function resetDatabase() { +export default function resetDatabase() { return Promise.resolve() .then(() => establishedDatabase.tearDown()) .then(() => establishedDatabase.setUp()); } - -module.exports = resetDatabase; diff --git a/tests/helpers/tmdbMock2.js b/tests/helpers/tmdbMock2.js index ba12c16..3105755 100644 --- a/tests/helpers/tmdbMock2.js +++ b/tests/helpers/tmdbMock2.js @@ -12,4 +12,4 @@ const tmdbMock = () => ({ } }); -module.exports = tmdbMock; +export default tmdbMock; diff --git a/tests/system/asADeveloperIWantTheServerToRegister.js b/tests/system/asADeveloperIWantTheServerToRegister.js index c205081..b61e7da 100644 --- a/tests/system/asADeveloperIWantTheServerToRegister.js +++ b/tests/system/asADeveloperIWantTheServerToRegister.js @@ -1,9 +1,9 @@ -const assert = require("assert"); -const chai = require("chai"); -const chaiHttp = require("chai-http"); +import assert from "assert"; +import chai from "chai"; +import chaiHttp from "chai-http"; -const server = require("../../src/webserver/server"); -const resetDatabase = require("../helpers/resetDatabase"); +import server from "../../src/webserver/server.js"; +import resetDatabase from "../helpers/resetDatabase.js"; chai.use(chaiHttp); diff --git a/tests/system/asADeveloperIWantTheServerToStart.js.disabled b/tests/system/asADeveloperIWantTheServerToStart.js.disabled index c957eb4..ea31668 100644 --- a/tests/system/asADeveloperIWantTheServerToStart.js.disabled +++ b/tests/system/asADeveloperIWantTheServerToStart.js.disabled @@ -1,6 +1,6 @@ /* eslint-disable no-return-assign */ -const net = require("net"); -const server = require("../../src/webserver/server"); +import net from "net"; +import server from "../../src/webserver/server.js"; describe("As a developer I want the server to start", () => { after(() => { diff --git a/tests/system/asADeveloperIWantToLogin.js b/tests/system/asADeveloperIWantToLogin.js index f920340..81a197d 100644 --- a/tests/system/asADeveloperIWantToLogin.js +++ b/tests/system/asADeveloperIWantToLogin.js @@ -1,10 +1,10 @@ -const assert = require("assert"); -const chai = require("chai"); -const chaiHttp = require("chai-http"); +import assert from "assert"; +import chai from "chai"; +import chaiHttp from "chai-http"; -const server = require("../../src/webserver/server"); -const createUser = require("../helpers/createUser"); -const resetDatabase = require("../helpers/resetDatabase"); +import server from "../../src/webserver/server.js"; +import createUser from "../helpers/createUser.js"; +import resetDatabase from "../helpers/resetDatabase.js"; chai.use(chaiHttp); diff --git a/tests/system/asAUserIWantAForbiddenErrorIfTheTokenIsMalformed.js b/tests/system/asAUserIWantAForbiddenErrorIfTheTokenIsMalformed.js index 8dc4c9c..156fb6d 100644 --- a/tests/system/asAUserIWantAForbiddenErrorIfTheTokenIsMalformed.js +++ b/tests/system/asAUserIWantAForbiddenErrorIfTheTokenIsMalformed.js @@ -1,9 +1,9 @@ -const assert = require("assert"); -const chai = require("chai"); -const chaiHttp = require("chai-http"); +import assert from "assert"; +import chai from "chai"; +import chaiHttp from "chai-http"; -const server = require("../../src/webserver/server"); -const resetDatabase = require("../helpers/resetDatabase"); +import server from "../../src/webserver/server.js"; +import resetDatabase from "../helpers/resetDatabase.js"; chai.use(chaiHttp); diff --git a/tests/system/asAUserIWantToGetErrorWhenRegisteringExistingUsername.js b/tests/system/asAUserIWantToGetErrorWhenRegisteringExistingUsername.js index 6a7248f..df2610d 100644 --- a/tests/system/asAUserIWantToGetErrorWhenRegisteringExistingUsername.js +++ b/tests/system/asAUserIWantToGetErrorWhenRegisteringExistingUsername.js @@ -1,10 +1,10 @@ -const assert = require("assert"); -const chai = require("chai"); -const chaiHttp = require("chai-http"); +import assert from "assert"; +import chai from "chai"; +import chaiHttp from "chai-http"; -const server = require("../../src/webserver/server"); -const createUser = require("../helpers/createUser"); -const resetDatabase = require("../helpers/resetDatabase"); +import server from "../../src/webserver/server.js"; +import createUser from "../helpers/createUser.js"; +import resetDatabase from "../helpers/resetDatabase.js"; chai.use(chaiHttp); diff --git a/tests/system/asAUserIWantToGetPopularMovies.js b/tests/system/asAUserIWantToGetPopularMovies.js index 3f4fedb..e786c23 100644 --- a/tests/system/asAUserIWantToGetPopularMovies.js +++ b/tests/system/asAUserIWantToGetPopularMovies.js @@ -1,17 +1,22 @@ -const assert = require("assert"); -const chai = require("chai"); -const chaiHttp = require("chai-http"); +import assert from "assert"; +import chai from "chai"; +import chaiHttp from "chai-http"; -const server = require("../../src/webserver/server"); -const resetDatabase = require("../helpers/resetDatabase"); -const createCacheEntry = require("../helpers/createCacheEntry"); -const popularMoviesSuccess = require("../fixtures/popular-movies-success-response.json"); +import server from "../../src/webserver/server.js"; +import resetDatabase from "../helpers/resetDatabase.js"; +import createCacheEntry from "../helpers/createCacheEntry.js"; +const popularMoviesSuccess = await import( + "../fixtures/popular-movies-success-response.json", + { + assert: { type: "json" } + } +); chai.use(chaiHttp); describe("As a user I want to get popular movies", () => { beforeEach(() => resetDatabase()); - beforeEach(() => createCacheEntry("tmdb/pm:1", popularMoviesSuccess)); + beforeEach(() => createCacheEntry("tmdb/pm:1", popularMoviesSuccess.default)); it("should return 200 with the information", done => { chai diff --git a/tests/system/asAUserIWantToGetPopularShows.js b/tests/system/asAUserIWantToGetPopularShows.js index b2f0065..40023dc 100644 --- a/tests/system/asAUserIWantToGetPopularShows.js +++ b/tests/system/asAUserIWantToGetPopularShows.js @@ -1,17 +1,22 @@ -const assert = require("assert"); -const chai = require("chai"); -const chaiHttp = require("chai-http"); +import assert from "assert"; +import chai from "chai"; +import chaiHttp from "chai-http"; -const server = require("../../src/webserver/server"); -const resetDatabase = require("../helpers/resetDatabase"); -const createCacheEntry = require("../helpers/createCacheEntry"); -const popularShowsSuccess = require("../fixtures/popular-show-success-response.json"); +import server from "../../src/webserver/server.js"; +import resetDatabase from "../helpers/resetDatabase.js"; +import createCacheEntry from "../helpers/createCacheEntry.js"; +const popularShowsSuccess = await import( + "../fixtures/popular-show-success-response.json", + { + assert: { type: "json" } + } +); chai.use(chaiHttp); describe("As a user I want to get popular shows", () => { beforeEach(() => resetDatabase()); - beforeEach(() => createCacheEntry("tmdb/pt:1", popularShowsSuccess)); + beforeEach(() => createCacheEntry("tmdb/pt:1", popularShowsSuccess.default)); it("should return 200 with the information", done => { chai diff --git a/tests/system/asAUserIWantToRequestAMovie.js b/tests/system/asAUserIWantToRequestAMovie.js index 2fd9d73..bc64744 100644 --- a/tests/system/asAUserIWantToRequestAMovie.js +++ b/tests/system/asAUserIWantToRequestAMovie.js @@ -1,20 +1,28 @@ -const assert = require("assert"); -const chai = require("chai"); -const chaiHttp = require("chai-http"); +import assert from "assert"; +import chai from "chai"; +import chaiHttp from "chai-http"; -const server = require("../../src/webserver/server"); -const createUser = require("../helpers/createUser"); -const createToken = require("../helpers/createToken"); -const resetDatabase = require("../helpers/resetDatabase"); -const createCacheEntry = require("../helpers/createCacheEntry"); -const infoMovieSuccess = require("../fixtures/blade_runner_2049-info-success-response.json"); +import server from "../../src/webserver/server.js"; +import createUser from "../helpers/createUser.js"; +import createToken from "../helpers/createToken.js"; +import resetDatabase from "../helpers/resetDatabase.js"; +import createCacheEntry from "../helpers/createCacheEntry.js"; + +const infoMovieSuccess = await import( + "../fixtures/blade_runner_2049-info-success-response.json", + { + assert: { type: "json" } + } +); chai.use(chaiHttp); describe("As a user I want to request a movie", () => { beforeEach(() => resetDatabase()); beforeEach(() => createUser("test_user", "test@gmail.com", "password")); - beforeEach(() => createCacheEntry("mi:335984:false", infoMovieSuccess)); + beforeEach(() => + createCacheEntry("mi:335984:false", infoMovieSuccess.default) + ); it("should return 200 when item is requested", () => { chai diff --git a/tests/system/asAnAnonymousUserIWantToSearchForAMovie.js b/tests/system/asAnAnonymousUserIWantToSearchForAMovie.js index d2e6bb4..2d5653c 100644 --- a/tests/system/asAnAnonymousUserIWantToSearchForAMovie.js +++ b/tests/system/asAnAnonymousUserIWantToSearchForAMovie.js @@ -1,18 +1,26 @@ -const assert = require("assert"); -const chai = require("chai"); -const chaiHttp = require("chai-http"); +import assert from "assert"; +import chai from "chai"; +import chaiHttp from "chai-http"; -const server = require("../../src/webserver/server"); -const resetDatabase = require("../helpers/resetDatabase"); -const createCacheEntry = require("../helpers/createCacheEntry"); -const interstellarQuerySuccess = require("../fixtures/interstellar-query-movie-success-response.json"); +import server from "../../src/webserver/server.js"; +import resetDatabase from "../helpers/resetDatabase.js"; +import createCacheEntry from "../helpers/createCacheEntry.js"; +const interstellarQuerySuccess = await import( + "../fixtures/interstellar-query-movie-success-response.json", + { + assert: { type: "json" } + } +); chai.use(chaiHttp); describe("As an anonymous user I want to search for a movie", () => { beforeEach(() => resetDatabase()); beforeEach(() => - createCacheEntry("tmdb/mos:1:interstellar:false", interstellarQuerySuccess) + createCacheEntry( + "tmdb/mos:1:interstellar:false", + interstellarQuerySuccess.default + ) ); it("should return 200 with the search results even if user is not logged in", done => { diff --git a/tests/unit/config/testConfig.js b/tests/unit/config/testConfig.js index 91ee935..f1a3402 100644 --- a/tests/unit/config/testConfig.js +++ b/tests/unit/config/testConfig.js @@ -1,78 +1,77 @@ -const assert = require("assert"); -const Config = require("../../../src/config/configuration"); +import assert from "assert"; +import Configuration from "../../../src/config/configuration.js"; + +const configuration = Configuration.getInstance(); + +let backedUpEnvironmentVariables; +let backedUpConfigFields; describe("Config", () => { beforeEach(() => { - this.backedUpEnvironmentVariables = { ...process.env }; - this.backedUpConfigFields = { ...Config.getInstance().fields }; + backedUpEnvironmentVariables = { ...process.env }; + backedUpConfigFields = { ...configuration.fields }; }); afterEach(() => { - process.env = this.backedUpEnvironmentVariables; - Config.getInstance().fields = this.backedUpConfigFields; + process.env = backedUpEnvironmentVariables; + configuration.fields = backedUpConfigFields; }); it("should retrieve section and option from config file", () => { - Config.getInstance().fields = { webserver: { port: 1337 } }; - assert.equal(Config.getInstance().get("webserver", "port"), 1337); + configuration.fields = { webserver: { port: 1337 } }; + assert.equal(configuration.get("webserver", "port"), 1337); }); it("should resolve to environment variables if option is filtered with env", () => { - Config.getInstance().fields = { + configuration.fields = { webserver: { port: "env|SEASONED_WEBSERVER_PORT" } }; process.env.SEASONED_WEBSERVER_PORT = "1338"; - assert.equal(Config.getInstance().get("webserver", "port"), 1338); + assert.equal(configuration.get("webserver", "port"), 1338); }); it("raises an exception if the environment variable does not exist", () => { - Config.getInstance().fields = { webserver: { port: "env|DOES_NOT_EXIST" } }; + configuration.fields = { webserver: { port: "env|DOES_NOT_EXIST" } }; process.env.SEASONED_WEBSERVER_PORT = "1338"; - assert.throws(() => Config.getInstance().get("webserver", "port"), /empty/); + assert.throws(() => configuration.get("webserver", "port"), /empty/); }); it("raises an exception if the environment variable is empty", () => { - Config.getInstance().fields = { + configuration.fields = { webserver: { port: "env|SEASONED_WEBSERVER_PORT" } }; process.env.SEASONED_WEBSERVER_PORT = ""; - assert.throws(() => Config.getInstance().get("webserver", "port"), /empty/); + assert.throws(() => configuration.get("webserver", "port"), /empty/); }); it("raises an exception if the section does not exist in the file", () => { - Config.getInstance().fields = { webserver: { port: "1338" } }; - assert.throws( - () => Config.getInstance().get("woops", "port"), - /does not exist/ - ); + configuration.fields = { webserver: { port: "1338" } }; + assert.throws(() => configuration.get("woops", "port"), /does not exist/); }); it("raises an exception if the option does not exist in the file", () => { - Config.getInstance().fields = { webserver: { port: "1338" } }; + configuration.fields = { webserver: { port: "1338" } }; assert.throws( - () => Config.getInstance().get("webserver", "woops"), + () => configuration.get("webserver", "woops"), /does not exist/ ); }); it("returns an array if field is an array", () => { - Config.getInstance().fields = { bouncer: { whitelist: [1, 2, 3] } }; - assert.deepEqual( - Config.getInstance().get("bouncer", "whitelist"), - [1, 2, 3] - ); + configuration.fields = { bouncer: { whitelist: [1, 2, 3] } }; + assert.deepEqual(configuration.get("bouncer", "whitelist"), [1, 2, 3]); }); it("decodes field as base64 if base64| is before the variable", () => { - Config.getInstance().fields = { webserver: { port: "base64|MTMzOA==" } }; - assert.equal(Config.getInstance().get("webserver", "port"), 1338); + configuration.fields = { webserver: { port: "base64|MTMzOA==" } }; + assert.equal(configuration.get("webserver", "port"), 1338); }); it("decodes environment variable as base64 if BASE64= is before the variable", () => { - Config.getInstance().fields = { + configuration.fields = { webserver: { port: "env|base64|SEASONED_WEBSERVER_PORT" } }; process.env.SEASONED_WEBSERVER_PORT = "MTMzOA=="; - assert.equal(Config.getInstance().get("webserver", "port"), 1338); + assert.equal(configuration.get("webserver", "port"), 1338); }); }); diff --git a/tests/unit/config/testField.js b/tests/unit/config/testField.js index bc0ac9e..8a5f569 100644 --- a/tests/unit/config/testField.js +++ b/tests/unit/config/testField.js @@ -1,5 +1,5 @@ -const assert = require("assert"); -const Field = require("../../../src/config/field"); +import assert from "assert"; +import Field from "../../../src/config/field.js"; describe("Field", () => { it("should return an array if it is an array", () => { diff --git a/tests/unit/config/testFilters.js b/tests/unit/config/testFilters.js index c13c730..9e63801 100644 --- a/tests/unit/config/testFilters.js +++ b/tests/unit/config/testFilters.js @@ -1,5 +1,5 @@ -const assert = require("assert"); -const Filters = require("../../../src/config/filters"); +import assert from "assert"; +import Filters from "../../../src/config/filters.js"; describe("Filters", () => { it("should extract base64 as filter if it is at start of string followed by pipe", () => { diff --git a/tests/unit/tmdb/testConvertTmdbToMovie.js b/tests/unit/tmdb/testConvertTmdbToMovie.js index b293dbd..6149845 100644 --- a/tests/unit/tmdb/testConvertTmdbToMovie.js +++ b/tests/unit/tmdb/testConvertTmdbToMovie.js @@ -1,38 +1,37 @@ -const assert = require("assert"); -// const convertTmdbToMovie = require('src/tmdb/convertTmdbToMovie'); -const { Movie } = require("../../../src/tmdb/types"); -const bladeRunnerQuerySuccess = require("../../fixtures/blade_runner_2049-info-success-response.json"); +import assert from "assert"; +// import convertTmdbToMovie = require('src/tmdb/convertTmdbToMovie'); +import { Movie } from "../../../src/tmdb/types.js"; +const bladeRunnerQuerySuccess = await import( + "../../fixtures/blade_runner_2049-info-success-response.json", + { + assert: { type: "json" } + } +); + +let bladeRunnerTmdbMovie; describe("Convert tmdb movieInfo to movie", () => { beforeEach(() => { - [this.bladeRunnerTmdbMovie] = bladeRunnerQuerySuccess; + bladeRunnerTmdbMovie = bladeRunnerQuerySuccess.default[0]; }); it("should translate the tmdb release date to movie year", () => { - const bladeRunner = Movie.convertFromTmdbResponse( - this.bladeRunnerTmdbMovie - ); + const bladeRunner = Movie.convertFromTmdbResponse(bladeRunnerTmdbMovie); assert.strictEqual(bladeRunner.year, 2017); }); it("should translate the tmdb release date to instance of Date", () => { - const bladeRunner = Movie.convertFromTmdbResponse( - this.bladeRunnerTmdbMovie - ); + const bladeRunner = Movie.convertFromTmdbResponse(bladeRunnerTmdbMovie); assert(bladeRunner.releaseDate instanceof Date); }); it("should translate the tmdb title to title", () => { - const bladeRunner = Movie.convertFromTmdbResponse( - this.bladeRunnerTmdbMovie - ); + const bladeRunner = Movie.convertFromTmdbResponse(bladeRunnerTmdbMovie); assert.equal(bladeRunner.title, "Blade Runner 2049"); }); it("should translate the tmdb vote_average to rating", () => { - const bladeRunner = Movie.convertFromTmdbResponse( - this.bladeRunnerTmdbMovie - ); + const bladeRunner = Movie.convertFromTmdbResponse(bladeRunnerTmdbMovie); assert.equal(bladeRunner.rating, 7.3); }); }); diff --git a/tests/unit/tmdb/testTmdb.disabled b/tests/unit/tmdb/testTmdb.disabled index 0e6f5ae..34ac2be 100644 --- a/tests/unit/tmdb/testTmdb.disabled +++ b/tests/unit/tmdb/testTmdb.disabled @@ -1,13 +1,13 @@ -const assert = require('assert'); -// const Movie = require('src/movie/movie'); -const TMDB = require('src/tmdb/tmdb'); -const Cache = require('src/tmdb/cache'); -const SqliteDatabase = require('src/database/sqliteDatabase'); -const tmdbMock = require('test/helpers/tmdbMock'); +import assert 'assert'; +// import require('src/movie/movie.js'; +import TMDB 'src/tmdb/tmdb.js'; +import Cache 'src/tmdb/cache.js'; +import SqliteDatabase 'src/database/sqliteDatabase.js'; +import tmdbMock 'test/helpers/tmdbMock.js'; -const emptyQuerySuccess = require('tests/fixtures/empty-query-success-response.json'); -const interstellarQuerySuccess = require('tests/fixtures/arrival-info-success-response.json'); -const popularMovieSuccessResponse = require('tests/fixtures/popular-movies-success-response.json'); +import emptyQuerySuccess 'tests/fixtures/empty-query-success-response.json'; +import interstellarQuerySuccess 'tests/fixture/arrival-info-success-response.json'); +import popularMovieSuccessResponse 'tests/fixture/popular-movies-success-response.json'); describe('TMDB', function test() { beforeEach(() => {