From 5103bdbc2a818f74c4caede1b6aea9b63a5171ab Mon Sep 17 00:00:00 2001 From: roschaefer Date: Tue, 13 Aug 2019 11:50:33 +0200 Subject: [PATCH] Fix tests --- .../src/middleware/orderByMiddleware.spec.js | 71 ++++++++++++------- backend/src/schema/resolvers/posts.js | 1 + backend/src/schema/resolvers/posts.spec.js | 2 + 3 files changed, 48 insertions(+), 26 deletions(-) diff --git a/backend/src/middleware/orderByMiddleware.spec.js b/backend/src/middleware/orderByMiddleware.spec.js index 450220cd6..7a42166cf 100644 --- a/backend/src/middleware/orderByMiddleware.spec.js +++ b/backend/src/middleware/orderByMiddleware.spec.js @@ -1,22 +1,29 @@ -import { GraphQLClient } from 'graphql-request' import Factory from '../seed/factories' -import { host } from '../jest/helpers' +import { gql } from '../jest/helpers' +import { neode as getNeode, getDriver } from '../bootstrap/neo4j' +import { createTestClient } from 'apollo-server-testing' +import createServer from '../server' -let client -let headers -let query const factory = Factory() +const neode = getNeode() +const driver = getDriver() + +const { server } = createServer({ + context: () => { + return { + user: null, + neode, + driver, + } + }, +}) +const { query } = createTestClient(server) beforeEach(async () => { - const userParams = { name: 'Author', email: 'author@example.org', password: '1234' } - await factory.create('User', userParams) - await factory.authenticateAs(userParams) - await factory.create('Post', { title: 'first' }) - await factory.create('Post', { title: 'second' }) - await factory.create('Post', { title: 'third' }) - await factory.create('Post', { title: 'last' }) - headers = {} - client = new GraphQLClient(host, { headers }) + await neode.create('Post', { title: 'first' }) + await neode.create('Post', { title: 'second' }) + await neode.create('Post', { title: 'third' }) + await neode.create('Post', { title: 'last' }) }) afterEach(async () => { @@ -25,10 +32,6 @@ afterEach(async () => { describe('Query', () => { describe('Post', () => { - beforeEach(() => { - query = '{ Post { title } }' - }) - describe('orderBy', () => { it('createdAt descending is default', async () => { const posts = [ @@ -37,15 +40,21 @@ describe('Query', () => { { title: 'second' }, { title: 'first' }, ] - const expected = { Post: posts } - await expect(client.request(query)).resolves.toEqual(expected) + const expected = expect.objectContaining({ data: { Post: posts } }) + await expect( + query({ + query: gql` + { + Post { + title + } + } + `, + }), + ).resolves.toEqual(expected) }) describe('(orderBy: createdAt_asc)', () => { - beforeEach(() => { - query = '{ Post(orderBy: createdAt_asc) { title } }' - }) - it('orders by createdAt ascending', async () => { const posts = [ { title: 'first' }, @@ -53,8 +62,18 @@ describe('Query', () => { { title: 'third' }, { title: 'last' }, ] - const expected = { Post: posts } - await expect(client.request(query)).resolves.toEqual(expected) + const expected = expect.objectContaining({ data: { Post: posts } }) + await expect( + query({ + query: gql` + { + Post(orderBy: createdAt_asc) { + title + } + } + `, + }), + ).resolves.toEqual(expected) }) }) }) diff --git a/backend/src/schema/resolvers/posts.js b/backend/src/schema/resolvers/posts.js index 884bd4659..ea1f680bd 100644 --- a/backend/src/schema/resolvers/posts.js +++ b/backend/src/schema/resolvers/posts.js @@ -5,6 +5,7 @@ import { getBlockedUsers, getBlockedByUsers } from './users.js' import { mergeWith, isArray } from 'lodash' const filterForBlockedUsers = async (params, context) => { + if (!context.user) return params const [blockedUsers, blockedByUsers] = await Promise.all([ getBlockedUsers(context), getBlockedByUsers(context), diff --git a/backend/src/schema/resolvers/posts.spec.js b/backend/src/schema/resolvers/posts.spec.js index b48be16db..15376c8a4 100644 --- a/backend/src/schema/resolvers/posts.spec.js +++ b/backend/src/schema/resolvers/posts.spec.js @@ -460,6 +460,7 @@ describe('emotions', () => { context: () => { return { user, + neode: instance, driver, } }, @@ -476,6 +477,7 @@ describe('emotions', () => { context: () => { return { user, + neode: instance, driver, } },