Retrospring/spec/lib/exporter_spec.rb

69 lines
3.0 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
require 'exporter'
RSpec.describe Exporter do
let(:params) { {
answered_count: 144,
asked_count: 72,
ban_reason: nil,
banned_until: nil,
comment_smiled_count: 15,
commented_count: 12,
confirmation_sent_at: 2.weeks.ago.utc,
confirmed_at: 2.weeks.ago.utc + 1.hour,
created_at: 2.weeks.ago.utc,
current_sign_in_at: 8.hours.ago.utc,
current_sign_in_ip: '198.51.100.220',
last_sign_in_at: 1.hour.ago,
last_sign_in_ip: '192.0.2.14',
locale: 'en',
permanently_banned: false,
privacy_allow_anonymous_questions: true,
privacy_allow_public_timeline: false,
privacy_allow_stranger_answers: false,
privacy_show_in_search: true,
screen_name: 'fizzyraccoon',
show_foreign_themes: true,
sign_in_count: 10,
smiled_count: 28,
profile: {
display_name: 'Fizzy Raccoon',
description: 'A small raccoon',
location: 'Binland',
motivation_header: '',
website: 'https://retrospring.net',
} } }
let(:user) { FactoryBot.create(:user,
**params) }
let(:instance) { described_class.new(user) }
describe '#collect_user_info' do
subject { instance.send(:collect_user_info) }
context 'exporting a user' do
it "collects user info" do
subject
expect(instance.instance_variable_get(:@obj)).to eq(params.merge({
administrator: false,
moderator: false,
id: user.id,
updated_at: user.updated_at,
profile_header: user.profile_header,
profile_header_file_name: nil,
profile_header_h: nil,
profile_header_w: nil,
profile_header_x: nil,
profile_header_y: nil,
profile_picture_file_name: nil,
profile_picture_h: nil,
profile_picture_w: nil,
profile_picture_x: nil,
profile_picture_y: nil,
}))
end
end
end
end