Skip to content

Commit

Permalink
test filter and sorting
Browse files Browse the repository at this point in the history
  • Loading branch information
simonfranzen committed Sep 20, 2020
1 parent db0978f commit a6ecf25
Showing 1 changed file with 77 additions and 2 deletions.
79 changes: 77 additions & 2 deletions spec/graphql/resolvers/users/users_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@

let(:query_string) do
<<-GRAPHQL
query($after: String, $before: String, $first: Int, $last: Int) {
users(after: $after, before: $before, first: $first, last: $last){
query($orderBy: ItemOrder, $filter: UserFilter, $after: String, $before: String, $first: Int, $last: Int) {
users(orderBy: $orderBy, filter: $filter, after: $after, before: $before, first: $first, last: $last){
pageInfo {
endCursor
startCursor
Expand Down Expand Up @@ -79,5 +79,80 @@
expect(result['data']['users']['pageInfo']['startCursor']).not_to be_empty
end
end

context 'when filters set' do
let(:user) { create(:user) }
let(:user2) { create(:user) }

let(:context) { { current_user: user } }

let(:variables) do
{
filter: {
firstName: user.first_name
}
}
end

before { create_list(:user, 3, company: user.company) }

it 'returns only filtered user' do
graphql!
users = result['data']['users']['edges']
expect(users.first['node']['id']).to eq(user.id)
end

it 'returns only the filterd one' do
graphql!
users = result['data']['users']['edges']
expect(users.length).to eq(1)
end

it 'returns pageInfo' do
graphql!
expect(result['data']['users']['pageInfo']['startCursor']).not_to be_empty
end

it 'not has errors' do
graphql!
expect(result['errors']).to be_nil
end
end

context 'when orderBy set' do
let(:user) { create(:user) }
let(:user2) { create(:user) }

let(:context) { { current_user: user } }

let(:variables) do
{
orderBy: {
attribute: 'first_name',
direction: 'asc'
}
}
end

before { create_list(:user, 20, company: user.company) }

it 'returns ordered users' do
graphql!
users = result['data']['users']['edges']
(users.length - 2).times do |i|
expect(users[i]['node']['firstName'][0] <= users[i + 1]['node']['firstName'][0]).to be_truthy
end
end

it 'returns pageInfo' do
graphql!
expect(result['data']['users']['pageInfo']['startCursor']).not_to be_empty
end

it 'not has errors' do
graphql!
expect(result['errors']).to be_nil
end
end
end
end

0 comments on commit a6ecf25

Please sign in to comment.