62 lines
1.8 KiB
Ruby
62 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
require_relative 'shared_context_for_backup_restore'
|
|
|
|
describe BackupRestore::BackupFileHandler do
|
|
include_context "shared stuff"
|
|
|
|
it "works with current backup file format" do
|
|
expect_decompress_and_clean_up_to_work(
|
|
backup_filename: "backup_since_v1.6.tar.gz",
|
|
require_metadata_file: false,
|
|
require_uploads: true
|
|
)
|
|
end
|
|
|
|
it "works with SQL only backup file" do
|
|
expect_decompress_and_clean_up_to_work(
|
|
backup_filename: "sql_only_backup.sql.gz",
|
|
expected_dump_filename: "sql_only_backup.sql",
|
|
require_metadata_file: false,
|
|
require_uploads: false
|
|
)
|
|
end
|
|
|
|
it "works with backup file which uses wrong upload path" do
|
|
expect_decompress_and_clean_up_to_work(
|
|
backup_filename: "backup_with_wrong_upload_path.tar.gz",
|
|
require_metadata_file: false,
|
|
require_uploads: true,
|
|
expected_upload_paths: [
|
|
"uploads/default/original/1X/both.txt",
|
|
"uploads/default/original/1X/only-uploads.txt",
|
|
"uploads/default/original/1X/only-var.txt"
|
|
]
|
|
) do |upload_path|
|
|
content = File.read(upload_path).chomp
|
|
|
|
case File.basename(upload_path)
|
|
when "both.txt", "only-var.txt"
|
|
expect(content).to eq("var")
|
|
when "only-uploads.txt"
|
|
expect(content).to eq("uploads")
|
|
end
|
|
end
|
|
end
|
|
|
|
it "allows overriding the backup store" do
|
|
SiteSetting.s3_backup_bucket = "s3-backup-bucket"
|
|
SiteSetting.s3_access_key_id = "s3-access-key-id"
|
|
SiteSetting.s3_secret_access_key = "s3-secret-access-key"
|
|
SiteSetting.backup_location = BackupLocationSiteSetting::S3
|
|
|
|
expect_decompress_and_clean_up_to_work(
|
|
backup_filename: "backup_since_v1.6.tar.gz",
|
|
require_metadata_file: false,
|
|
require_uploads: true,
|
|
location: BackupLocationSiteSetting::LOCAL
|
|
)
|
|
end
|
|
end
|