main
 1module TFA
 2  describe SecureStorage do
 3    subject { described_class.new(original, passphrase) }
 4    let(:original) { Tempfile.new("tfa") }
 5    let(:passphrase) { -> { SecureRandom.uuid } }
 6
 7    after { original.unlink }
 8
 9    describe "decrypt!" do
10      let(:message) { JSON.generate(secret: SecureRandom.uuid) }
11
12      it "decrypts an encrypted file" do
13        IO.write(original.path, message)
14        subject.encrypt!
15        subject.decrypt!
16        expect(IO.read(original.path)).to eql(message)
17      end
18    end
19
20    describe "encrypt!" do
21      let(:message) { JSON.generate(secret: SecureRandom.uuid) }
22
23      it "encrypts a file" do
24        IO.write(original.path, message)
25        subject.encrypt!
26        expect(IO.read(original.path)).to_not eql(message)
27      end
28    end
29  end
30end