mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.1 KiB
102 lines
3.1 KiB
# frozen_string_literal: true
|
|
|
|
require "bundler/gem_tasks"
|
|
require "minitest/test_task"
|
|
require "azure_blob"
|
|
require_relative "test/support/app_service_vpn"
|
|
require_relative "test/support/azure_vm_vpn"
|
|
require_relative "test/support/aks_vpn"
|
|
require_relative "test/support/azurite"
|
|
|
|
Minitest::TestTask.create(:test_rails) do
|
|
self.test_globs = [ "test/rails/**/test_*.rb",
|
|
"test/rails/**/*_test.rb", ]
|
|
end
|
|
|
|
Minitest::TestTask.create(:test_client) do
|
|
self.test_globs = [ "test/client/**/test_*.rb",
|
|
"test/client/**/*_test.rb", ]
|
|
end
|
|
|
|
task default: %i[test]
|
|
|
|
task :test do
|
|
[
|
|
"AZURE_ACCOUNT_NAME",
|
|
"AZURE_PRIVATE_CONTAINER",
|
|
"AZURE_PUBLIC_CONTAINER",
|
|
].each do |env|
|
|
value = ENV[env]
|
|
raise "#{env} variable need to be set if you are using the nix/devenv environment, consider running generate-env-file" if value.nil? || value.empty?
|
|
end
|
|
|
|
Rake::Task["test_client"].execute
|
|
Rake::Task["test_rails"].execute
|
|
end
|
|
|
|
task :test_app_service do |t|
|
|
vpn = AppServiceVpn.new
|
|
ENV["IDENTITY_ENDPOINT"] = vpn.endpoint
|
|
ENV["IDENTITY_HEADER"] = vpn.header
|
|
Rake::Task["test_entra_id"].execute
|
|
ensure
|
|
vpn.kill
|
|
end
|
|
|
|
task :test_azure_vm do |t|
|
|
vpn = AzureVmVpn.new
|
|
Rake::Task["test_entra_id"].execute
|
|
ensure
|
|
vpn.kill
|
|
end
|
|
|
|
task :test_aks do |t|
|
|
vpn = AksVpn.new
|
|
ENV["AZURE_CLIENT_ID"] = vpn.client_id
|
|
ENV["AZURE_TENANT_ID"] = vpn.tenant_id
|
|
ENV["AZURE_FEDERATED_TOKEN_FILE"] = vpn.token_file
|
|
Rake::Task["test_entra_id"].execute
|
|
ensure
|
|
vpn.kill
|
|
end
|
|
|
|
task :test_azurite do |t|
|
|
azurite = Azurite.new
|
|
# Azurite well-known credentials
|
|
# https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=visual-studio%2Cblob-storage#well-known-storage-account-and-key
|
|
account_name = ENV["AZURE_ACCOUNT_NAME"] = "devstoreaccount1"
|
|
access_key = ENV["AZURE_ACCESS_KEY"] = "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
|
|
host = ENV["STORAGE_BLOB_HOST"] = "http://127.0.0.1:10000/devstoreaccount1"
|
|
ENV["TESTING_AZURITE"] = "true"
|
|
|
|
# Create containers
|
|
private_container = AzureBlob::Client.new(account_name:, access_key:, host:, container: ENV["AZURE_PRIVATE_CONTAINER"])
|
|
public_container = AzureBlob::Client.new(account_name:, access_key:, host:, container: ENV["AZURE_PUBLIC_CONTAINER"])
|
|
# public_container.delete_container
|
|
private_container.create_container unless private_container.get_container_properties.present?
|
|
public_container.create_container(public_access: true) unless public_container.get_container_properties.present?
|
|
|
|
Rake::Task["test_client"].execute
|
|
Rake::Task["test_rails"].execute
|
|
ensure
|
|
azurite.kill
|
|
end
|
|
|
|
task :test_entra_id do |t|
|
|
ENV["AZURE_ACCESS_KEY"] = nil
|
|
Rake::Task["test"].execute
|
|
end
|
|
|
|
task :flush_test_container do |t|
|
|
AzureBlob::Client.new(
|
|
account_name: ENV["AZURE_ACCOUNT_NAME"],
|
|
access_key: ENV["AZURE_ACCESS_KEY"],
|
|
container: ENV["AZURE_PRIVATE_CONTAINER"],
|
|
).delete_prefix ""
|
|
AzureBlob::Client.new(
|
|
account_name: ENV["AZURE_ACCOUNT_NAME"],
|
|
access_key: ENV["AZURE_ACCESS_KEY"],
|
|
container: ENV["AZURE_PUBLIC_CONTAINER"],
|
|
).delete_prefix ""
|
|
end
|