diff --git a/tests/helpers/importFixture.js b/tests/helpers/importFixture.js new file mode 100644 index 0000000..38198a2 --- /dev/null +++ b/tests/helpers/importFixture.js @@ -0,0 +1,23 @@ +import fs from "fs"; +import path from "path"; +import { fileURLToPath } from "url"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +function determineLocation(fixtureFilename) { + return path.join(__dirname, "..", "fixtures", fixtureFilename); +} + +export default function readFixtureContents(fixtureFilename) { + const location = determineLocation(fixtureFilename); + + let content = {}; + try { + content = JSON.parse(fs.readFileSync(location, { encoding: "utf-8" })); + } catch (err) { + console.error(`Error loading fixture file at path: ${location}`); + } + + return content; +} diff --git a/tests/system/asAUserIWantToGetPopularMovies.js b/tests/system/asAUserIWantToGetPopularMovies.js index e786c23..2a0216e 100644 --- a/tests/system/asAUserIWantToGetPopularMovies.js +++ b/tests/system/asAUserIWantToGetPopularMovies.js @@ -5,18 +5,17 @@ import chaiHttp from "chai-http"; 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" } - } -); +import readFixtureContents from "../helpers/importFixture.js"; chai.use(chaiHttp); +const popularMoviesSuccess = readFixtureContents( + "popular-movies-success-response.json" +); + describe("As a user I want to get popular movies", () => { beforeEach(() => resetDatabase()); - beforeEach(() => createCacheEntry("tmdb/pm:1", popularMoviesSuccess.default)); + beforeEach(() => createCacheEntry("tmdb/pm:1", popularMoviesSuccess)); it("should return 200 with the information", done => { chai diff --git a/tests/system/asAUserIWantToGetPopularShows.js b/tests/system/asAUserIWantToGetPopularShows.js index 40023dc..2d1b6da 100644 --- a/tests/system/asAUserIWantToGetPopularShows.js +++ b/tests/system/asAUserIWantToGetPopularShows.js @@ -5,18 +5,17 @@ import chaiHttp from "chai-http"; 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" } - } -); +import readFixtureContents from "../helpers/importFixture.js"; chai.use(chaiHttp); +const popularShowsSuccess = readFixtureContents( + "popular-show-success-response.json" +); + describe("As a user I want to get popular shows", () => { beforeEach(() => resetDatabase()); - beforeEach(() => createCacheEntry("tmdb/pt:1", popularShowsSuccess.default)); + beforeEach(() => createCacheEntry("tmdb/pt:1", popularShowsSuccess)); it("should return 200 with the information", done => { chai diff --git a/tests/system/asAUserIWantToRequestAMovie.js b/tests/system/asAUserIWantToRequestAMovie.js index bc64744..3702d1f 100644 --- a/tests/system/asAUserIWantToRequestAMovie.js +++ b/tests/system/asAUserIWantToRequestAMovie.js @@ -7,22 +7,18 @@ 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" } - } -); +import readFixtureContents from "../helpers/importFixture.js"; chai.use(chaiHttp); +const infoMovieSuccess = readFixtureContents( + "blade_runner_2049-info-success-response.json" +); + 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.default) - ); + beforeEach(() => createCacheEntry("mi:335984:false", infoMovieSuccess)); it("should return 200 when item is requested", () => { chai diff --git a/tests/system/asAnAnonymousUserIWantToSearchForAMovie.js b/tests/system/asAnAnonymousUserIWantToSearchForAMovie.js index 2d5653c..8b7c939 100644 --- a/tests/system/asAnAnonymousUserIWantToSearchForAMovie.js +++ b/tests/system/asAnAnonymousUserIWantToSearchForAMovie.js @@ -5,22 +5,18 @@ import chaiHttp from "chai-http"; 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" } - } -); +import readFixtureContents from "../helpers/importFixture.js"; chai.use(chaiHttp); +const interstellarQuerySuccess = readFixtureContents( + "interstellar-query-movie-success-response.json" +); + describe("As an anonymous user I want to search for a movie", () => { beforeEach(() => resetDatabase()); beforeEach(() => - createCacheEntry( - "tmdb/mos:1:interstellar:false", - interstellarQuerySuccess.default - ) + createCacheEntry("tmdb/mos:1:interstellar:false", interstellarQuerySuccess) ); it("should return 200 with the search results even if user is not logged in", done => { diff --git a/tests/unit/tmdb/testConvertTmdbToMovie.js b/tests/unit/tmdb/testConvertTmdbToMovie.js index 6149845..54b0a02 100644 --- a/tests/unit/tmdb/testConvertTmdbToMovie.js +++ b/tests/unit/tmdb/testConvertTmdbToMovie.js @@ -1,18 +1,17 @@ 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" } - } +import readFixtureContents from "../../helpers/importFixture.js"; + +const bladeRunnerQuerySuccess = readFixtureContents( + "blade_runner_2049-info-success-response.json" ); let bladeRunnerTmdbMovie; describe("Convert tmdb movieInfo to movie", () => { beforeEach(() => { - bladeRunnerTmdbMovie = bladeRunnerQuerySuccess.default[0]; + [bladeRunnerTmdbMovie] = bladeRunnerQuerySuccess; }); it("should translate the tmdb release date to movie year", () => {