aboutsummaryrefslogtreecommitdiffstats
path: root/test/site/mirror_site_test.rb
blob: 326edb2f9c18ac06ad91b640e5b7560da74a7356 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require "tmpdir"
require "site/shared_site_tests"

class ActiveVault::Site::MirrorSiteTest < ActiveSupport::TestCase
  PRIMARY_DISK_SITE   = ActiveVault::Site.configure(:Disk, root: File.join(Dir.tmpdir, "active_vault"))
  SECONDARY_DISK_SITE = ActiveVault::Site.configure(:Disk, root: File.join(Dir.tmpdir, "active_vault_mirror"))

  SITE = ActiveVault::Site.configure :Mirror, sites: [ PRIMARY_DISK_SITE, SECONDARY_DISK_SITE ]

  include ActiveVault::Site::SharedSiteTests

  test "uploading was done to all sites" do
    begin
      key  = SecureRandom.base58(24)
      data = "Something else entirely!"
      io   = StringIO.new(data)
      @site.upload(key, io)

      assert_equal data, PRIMARY_DISK_SITE.download(key)
      assert_equal data, SECONDARY_DISK_SITE.download(key)
    ensure
      @site.delete key
    end
  end

  test "existing in all sites" do
    assert PRIMARY_DISK_SITE.exist?(FIXTURE_KEY)
    assert SECONDARY_DISK_SITE.exist?(FIXTURE_KEY)
  end
end