spec/repo_spec.rb (38 lines of code) (raw):
#
# Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
# or more contributor license agreements. Licensed under the Elastic License;
# you may not use this file except in compliance with the Elastic License.
#
# frozen_string_literal: true
describe 'Repository' do
let(:gemspecs) { Dir[File.join(__dir__, '../*.gemspec')].to_a }
context 'NOTICE file' do
let(:notice_file) { 'NOTICE.txt' }
let(:notice_path) { File.join(__dir__, "../#{notice_file}") }
it 'exists' do
expect(File.exist?(notice_path)).to be(true)
end
it 'is included in our Gemspecs' do
gemspecs.each do |gemspec|
expect(File.read(gemspec)).to include(notice_file)
end
end
end
context 'LICENSE file' do
let(:license_file) { 'LICENSE' }
let(:license_path) { File.join(__dir__, "../#{license_file}") }
it 'exists' do
expect(File.exist?(license_path)).to be(true)
end
it 'is included in our Gemspecs' do
gemspecs.each do |gemspec|
expect(File.read(gemspec)).to include(license_file)
end
end
end
context 'License header' do
let(:license_header) do
%{#
# Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
# or more contributor license agreements. Licensed under the Elastic License;
# you may not use this file except in compliance with the Elastic License.
#}
end
let(:code_files) { Dir['lib/{[!vendor/]**/*,*}.rb'] }
it 'prefixes all code files' do
code_files.each do |code_file|
expect(File.read(code_file)).to start_with(license_header), "License header missing from #{code_file}"
end
end
end
end