feat(gql): adds tests for stream search and user search
This commit is contained in:
@@ -29,11 +29,12 @@ module.exports = {
|
||||
if ( args.limit && args.limit > 100 )
|
||||
throw new UserInputError( 'Cannot return more than 100 items, please use pagination.' )
|
||||
|
||||
let totalCount = await getUserStreamsCount({userId: context.userId, publicOnly: false, searchQuery: args.query} )
|
||||
let totalCount = await getUserStreamsCount( {userId: context.userId, publicOnly: false, searchQuery: args.query} )
|
||||
|
||||
let {cursor, streams} = await getUserStreams({userId: context.userId, limit: args.limit, cursor: args.cursor, publicOnly: false, searchQuery: args.query} )
|
||||
let {cursor, streams} = await getUserStreams( {userId: context.userId, limit: args.limit, cursor: args.cursor, publicOnly: false, searchQuery: args.query} )
|
||||
return {totalCount, cursor: cursor, items: streams}
|
||||
},
|
||||
}
|
||||
},
|
||||
Stream: {
|
||||
|
||||
async collaborators( parent, args, context, info ) {
|
||||
@@ -47,7 +48,7 @@ module.exports = {
|
||||
async streams( parent, args, context, info ) {
|
||||
if ( args.limit && args.limit > 100 )
|
||||
throw new UserInputError( 'Cannot return more than 100 items, please use pagination.' )
|
||||
// Return only the user's public streams if parent.id !== context.userId
|
||||
// Return only the user's public streams if parent.id !== context.userId
|
||||
let publicOnly = parent.id !== context.userId
|
||||
let totalCount = await getUserStreamsCount( { userId: parent.id, publicOnly } )
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ module.exports = {
|
||||
limit = limit || 25
|
||||
|
||||
let query = Users()
|
||||
.select( 'id username name bio company verified avatar' )
|
||||
.select( 'id', 'username', 'name', 'bio', 'company', 'verified', 'avatar', 'createdAt' )
|
||||
.where( queryBuilder => {
|
||||
queryBuilder.where( {email: searchQuery} ) //match full email or partial username / name
|
||||
queryBuilder.orWhere( 'username', 'ILIKE', `%${searchQuery}%` )
|
||||
|
||||
@@ -65,13 +65,20 @@ describe( 'Streams', ( ) => {
|
||||
expect( stream.description ).to.equal( 'Wooot' )
|
||||
} )
|
||||
|
||||
it( 'Should get all streams for a user', async ( ) => {
|
||||
it( 'Should get all streams of a user', async ( ) => {
|
||||
let { streams, cursor } = await getUserStreams( { userId: userOne.id } )
|
||||
// console.log( res )
|
||||
expect( streams ).to.have.lengthOf( 2 )
|
||||
expect( cursor ).to.exist
|
||||
} )
|
||||
|
||||
it('Should search all streams of a user', async () => {
|
||||
let {streams, cursor} = await getUserStreams({userId: userOne.id, searchQuery: "woo"})
|
||||
// console.log( res )
|
||||
expect(streams).to.have.lengthOf(1)
|
||||
expect(cursor).to.exist
|
||||
})
|
||||
|
||||
it( 'Should delete a stream', async ( ) => {
|
||||
const id = await createStream( { name: 'mayfly', description: 'wonderful', ownerId: userOne.id } )
|
||||
let all = await getUserStreams( { userId: userOne.id } )
|
||||
|
||||
@@ -11,7 +11,7 @@ chai.use( chaiHttp )
|
||||
|
||||
const knex = require( `${appRoot}/db/knex` )
|
||||
|
||||
const { createUser, getUser, updateUser, deleteUser, validatePasssword } = require( '../services/users' )
|
||||
const {createUser, getUser, searchUsers, updateUser, deleteUser, validatePasssword } = require( '../services/users' )
|
||||
const { createPersonalAccessToken, createAppToken, revokeToken, revokeTokenById, validateToken, getUserTokens } = require( '../services/tokens' )
|
||||
|
||||
describe( 'Actors & Tokens', ( ) => {
|
||||
@@ -61,6 +61,12 @@ describe( 'Actors & Tokens', ( ) => {
|
||||
expect( actor ).to.not.have.property( 'passwordDigest' )
|
||||
} )
|
||||
|
||||
it('Should search and get an users', async () => {
|
||||
let {users} = await searchUsers("gates", 20, null)
|
||||
expect(users).to.have.lengthOf(1)
|
||||
expect(users[0].name).to.equal("Bill Gates")
|
||||
})
|
||||
|
||||
it( 'Should update an actor', async ( ) => {
|
||||
let updatedActor = { ...myTestActor }
|
||||
updatedActor.username = 'didimitrie'
|
||||
|
||||
Reference in New Issue
Block a user