templates_spec.rb 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. require 'rails_helper'
  3. RSpec.describe Gql::Queries::Templates, type: :graphql do
  4. context 'when fetching templates' do
  5. let(:agent) { create(:agent) }
  6. let(:query) do
  7. <<~QUERY
  8. query templates($onlyActive: Boolean) {
  9. templates(onlyActive: $onlyActive) {
  10. name
  11. active
  12. options
  13. }
  14. }
  15. QUERY
  16. end
  17. let(:only_active) { false }
  18. let(:variables) { { onlyActive: only_active } }
  19. let!(:template) { create(:template) }
  20. let!(:inactive_template) { create(:template, active: false) }
  21. let(:template_response) { { 'name' => template.name, 'options' => template.options, 'active' => true } }
  22. let(:inactive_template_response) { { 'name' => inactive_template.name, 'options' => inactive_template.options, 'active' => false } }
  23. before do
  24. gql.execute(query, variables: variables)
  25. end
  26. context 'with authenticated session', authenticated_as: :agent do
  27. it 'returns templates in alphabetical order' do
  28. actual_names = gql.result.data.map { |t| t['name'] }
  29. sorted_names = actual_names.sort
  30. expect(actual_names).to eq(sorted_names)
  31. end
  32. context 'when fetching only active templates' do
  33. let(:only_active) { true }
  34. it 'does not include inactive templates' do
  35. expect(gql.result.data).to eq([template_response])
  36. end
  37. end
  38. end
  39. it_behaves_like 'graphql responds with error if unauthenticated'
  40. end
  41. end