discourse/spec/integrity/oj_spec.rb
David Taylor c9dab6fd08
DEV: Automatically require 'rails_helper' in all specs (#16077)
It's very easy to forget to add `require 'rails_helper'` at the top of every core/plugin spec file, and omissions can cause some very confusing/sporadic errors.

By setting this flag in `.rspec`, we can remove the need for `require 'rails_helper'` entirely.
2022-03-01 17:50:50 +00:00

18 lines
595 B
Ruby

# frozen_string_literal: true
describe 'Oj' do
it "is enabled" do
classes = Set.new
tracer = TracePoint.new(:c_call) { |tp| classes << tp.defined_class }
tracer.enable { ActiveModel::ArraySerializer.new([1, 2, 3]).to_json }
expect(classes).to include(Oj::Rails::Encoder)
end
it "escapes HTML entities the same as ActiveSupport" do
expect("<b>hello</b>".to_json).to eq("\"\\u003cb\\u003ehello\\u003c/b\\u003e\"")
expect('"hello world"'.to_json). to eq('"\"hello world\""')
expect("\u2028\u2029><&".to_json).to eq('"\u2028\u2029\u003e\u003c\u0026"')
end
end