2017-01-18 22:31:19 +01:00
|
|
|
# frozen_string_literal: true
|
2017-03-27 02:19:44 +02:00
|
|
|
|
2015-08-22 21:25:16 +02:00
|
|
|
require 'spec_helper'
|
|
|
|
|
2016-02-08 21:37:19 +01:00
|
|
|
describe 'license meta' do
|
2016-01-20 16:20:04 +01:00
|
|
|
licenses.each do |license|
|
2016-02-09 18:26:24 +01:00
|
|
|
# Manually load the raw license so we don't get the defaults
|
2016-06-01 00:44:12 +02:00
|
|
|
raw_fields = SafeYAML.load_file("_licenses/#{license['spdx-lcase']}.txt")
|
2015-08-22 21:25:16 +02:00
|
|
|
|
2016-02-08 21:37:19 +01:00
|
|
|
context "The #{license['title']} license" do
|
|
|
|
it 'should only contain supported meta fields' do
|
2017-03-27 02:19:44 +02:00
|
|
|
extra_fields = raw_fields.keys - (meta.map { |m| m['name'] })
|
2016-01-20 16:20:04 +01:00
|
|
|
expect(extra_fields).to be_empty
|
|
|
|
end
|
2015-08-22 21:25:16 +02:00
|
|
|
|
2016-02-08 21:37:19 +01:00
|
|
|
it 'should contain all required meta fields' do
|
|
|
|
required = meta.select { |m| m['required'] }.map { |m| m['name'] }
|
2016-01-20 16:20:04 +01:00
|
|
|
missing = required - raw_fields.keys
|
2015-08-22 21:25:16 +02:00
|
|
|
expect(missing).to be_empty
|
|
|
|
end
|
2017-05-30 23:17:13 +02:00
|
|
|
|
|
|
|
it 'using contains 3 examples' do
|
|
|
|
legacy = [
|
|
|
|
'afl-3.0',
|
|
|
|
'agpl-3.0',
|
|
|
|
'artistic-2.0',
|
|
|
|
'bsd-2-clause',
|
|
|
|
'bsd-3-clause',
|
|
|
|
'bsd-3-clause-clear',
|
|
|
|
'bsl-1.0',
|
|
|
|
'cc0-1.0',
|
|
|
|
'cc-by-4.0',
|
|
|
|
'cc-by-sa-4.0',
|
|
|
|
'eupl-1.1',
|
|
|
|
'gpl-2.0',
|
|
|
|
'lgpl-2.1',
|
|
|
|
'lgpl-3.0',
|
|
|
|
'lppl-1.3c',
|
|
|
|
'ms-pl',
|
|
|
|
'ms-rl',
|
|
|
|
'ofl-1.1',
|
|
|
|
'wtfpl',
|
|
|
|
'zlib'
|
|
|
|
]
|
|
|
|
skip 'added before 3 using examples required' if legacy.include?(license['slug'])
|
|
|
|
examples = raw_fields['using'] || []
|
|
|
|
expect(examples.length).to eq(3)
|
|
|
|
end
|
2015-08-22 21:25:16 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|