summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/git/lfs_pointer_file_spec.rb
blob: f45c7cccca0dae6c2f36d5ffe8fe65a44d336c57 (plain)
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
31
32
33
34
35
36
37
38
39
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe Gitlab::Git::LfsPointerFile do
  let(:data) { "1234\n" }

  subject { described_class.new(data) }

  describe '#size' do
    it 'counts the bytes' do
      expect(subject.size).to eq 5
    end

    it 'handles non ascii data' do
      expect(described_class.new("รครครครค").size).to eq 8
    end
  end

  describe '#sha256' do
    it 'hashes the content correctly' do
      expect(subject.sha256).to eq 'a883dafc480d466ee04e0d6da986bd78eb1fdd2178d04693723da3a8f95d42f4'
    end
  end

  describe '#pointer' do
    it 'starts with the LFS version' do
      expect(subject.pointer).to start_with('version https://git-lfs.github.com/spec/v1')
    end

    it 'includes sha256' do
      expect(subject.pointer).to match(/^oid sha256:[0-9a-fA-F]{64}/)
    end

    it 'ends with the size' do
      expect(subject.pointer).to end_with("\nsize 5\n")
    end
  end
end