mirror of
https://github.com/l5yth/potato-mesh.git
synced 2026-03-28 17:42:48 +01:00
* Harden federation domain validation and tests * Preserve domain casing for signature verification * Forward sanitize helper keyword argument * Handle mixed-case domains during signature verification
68 lines
1.8 KiB
Ruby
68 lines
1.8 KiB
Ruby
# Copyright (C) 2025 l5yth
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# frozen_string_literal: true
|
|
|
|
require "simplecov"
|
|
require "simplecov_json_formatter"
|
|
|
|
SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new(
|
|
[
|
|
SimpleCov::Formatter::SimpleFormatter,
|
|
SimpleCov::Formatter::HTMLFormatter,
|
|
SimpleCov::Formatter::JSONFormatter,
|
|
],
|
|
)
|
|
|
|
SimpleCov.start do
|
|
enable_coverage :branch
|
|
add_filter "/spec/"
|
|
end
|
|
|
|
require "tmpdir"
|
|
require "fileutils"
|
|
|
|
ENV["RACK_ENV"] = "test"
|
|
ENV["INSTANCE_DOMAIN"] ||= "spec.mesh.test"
|
|
|
|
SPEC_TMPDIR = Dir.mktmpdir("potato-mesh-spec-")
|
|
ENV["XDG_DATA_HOME"] = File.join(SPEC_TMPDIR, "xdg-data")
|
|
ENV["XDG_CONFIG_HOME"] = File.join(SPEC_TMPDIR, "xdg-config")
|
|
|
|
FileUtils.mkdir_p(ENV["XDG_DATA_HOME"])
|
|
FileUtils.mkdir_p(ENV["XDG_CONFIG_HOME"])
|
|
|
|
require_relative "../app"
|
|
|
|
require "rack/test"
|
|
require "rspec"
|
|
|
|
RSpec.configure do |config|
|
|
config.expect_with :rspec do |expectations|
|
|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
|
end
|
|
|
|
config.mock_with :rspec do |mocks|
|
|
mocks.verify_partial_doubles = true
|
|
end
|
|
|
|
config.shared_context_metadata_behavior = :apply_to_host_groups
|
|
|
|
config.include Rack::Test::Methods
|
|
|
|
config.after(:suite) do
|
|
FileUtils.remove_entry(SPEC_TMPDIR) if File.directory?(SPEC_TMPDIR)
|
|
end
|
|
end
|