# frozen_string_literal: true require 'spec_helper' describe 'licenses' do it 'matches the number of files in the _licenses folder' do expect(licenses.count).to eql(Dir["#{licenses_path}/*.txt"].count) end licenses.each do |license| context "The #{license['title']} license" do let(:spdx_lcase) { license['spdx-lcase'] } let(:spdx_id) { license['spdx-id'] } it 'has an SPDX ID' do expect(spdx_ids).to include(spdx_id) end it 'has an ID that is downcased SPDX ID' do expect(spdx_id.casecmp(spdx_lcase).zero?) end it 'uses its SPDX name' do spdx = find_spdx(spdx_id) expect(spdx).to_not be_nil expect(spdx[1]['name'].gsub(/ only$/, '')).to eql(license['title']) end context 'industry approval' do it 'should be approved by OSI or FSF or OD' do expect(approved_licenses).to include(spdx_lcase), 'See https://git.io/vzCTV.' end end context 'minimum permissions' do let(:permissions) { license['permissions'] } it 'should allow commercial use' do expect(permissions).to include('commercial-use') end it 'should allow modification' do expect(permissions).to include('modifications') end it 'should allow distribution' do expect(permissions).to include('distribution') end it 'should allow private use' do expect(permissions).to include('private-use') end end end end end