0
0
Fork 1
Spiegel von https://github.com/paviliondev/discourse-custom-wizard.git synchronisiert 2024-11-25 18:50:27 +01:00
discourse-custom-wizard/spec/serializers/custom_wizard/submission_serializer_spec.rb

60 Zeilen
2 KiB
Ruby

2021-09-06 11:25:08 +02:00
# frozen_string_literal: true
2024-10-16 13:52:03 +02:00
require_relative "../../plugin_helper"
2021-09-06 11:25:08 +02:00
describe CustomWizard::SubmissionSerializer do
fab!(:user1) { Fabricate(:user) }
fab!(:user2) { Fabricate(:user) }
2021-09-06 11:25:08 +02:00
2024-10-16 13:52:03 +02:00
let(:template_json) do
JSON.parse(
File.open("#{Rails.root}/plugins/discourse-custom-wizard/spec/fixtures/wizard.json").read,
)
end
2021-09-06 11:25:08 +02:00
before do
CustomWizard::Template.save(template_json, skip_jobs: true)
2023-03-16 17:44:10 +01:00
wizard = CustomWizard::Wizard.create(template_json["id"], user1)
2024-10-16 13:52:03 +02:00
CustomWizard::Submission.new(
wizard,
step_1_field_1: "I am user1 submission",
submitted_at: Time.now.iso8601,
).save
2023-03-16 17:44:10 +01:00
wizard = CustomWizard::Wizard.create(template_json["id"], user2)
2024-10-16 13:52:03 +02:00
CustomWizard::Submission.new(
wizard,
step_1_field_1: "I am user2 submission",
submitted_at: Time.now.iso8601,
).save
2021-09-06 11:25:08 +02:00
end
2024-10-16 13:52:03 +02:00
it "should return submission attributes" do
wizard = CustomWizard::Wizard.create(template_json["id"])
2024-10-16 13:52:03 +02:00
list = CustomWizard::Submission.list(wizard, page: 0, order_by: "id")
2024-10-16 13:52:03 +02:00
json_array =
ActiveModel::ArraySerializer.new(list.submissions, each_serializer: described_class).as_json
2021-09-06 11:25:08 +02:00
2023-03-16 17:44:10 +01:00
expect(json_array.length).to eq(2)
2021-09-06 11:25:08 +02:00
expect(json_array[0][:id].present?).to eq(true)
expect(json_array[0][:submitted_at].present?).to eq(true)
2023-03-16 17:44:10 +01:00
expect(json_array[0][:user]).to eq(BasicUserSerializer.new(user2, root: false).as_json)
expect(json_array[1][:user]).to eq(BasicUserSerializer.new(user1, root: false).as_json)
2021-09-06 11:25:08 +02:00
end
it "should return field values, types and labels" do
wizard = CustomWizard::Wizard.create(template_json["id"])
2024-10-16 13:52:03 +02:00
list = CustomWizard::Submission.list(wizard, page: 0, order_by: "id")
2024-10-16 13:52:03 +02:00
json_array =
ActiveModel::ArraySerializer.new(list.submissions, each_serializer: described_class).as_json
2021-09-06 11:25:08 +02:00
2023-03-16 17:44:10 +01:00
expect(json_array.length).to eq(2)
2024-10-16 13:52:03 +02:00
expect(json_array[0][:fields].as_json).to eq(
{ step_1_field_1: { value: "I am user2 submission", type: "text", label: "Text" } }.as_json,
)
2021-09-06 11:25:08 +02:00
end
end