mirror of
https://github.com/github/choosealicense.com
synced 2024-12-22 12:50:24 +01:00
better error output
This commit is contained in:
parent
b7204165de
commit
5531742d10
@ -1,29 +1,31 @@
|
||||
require 'spec_helper'
|
||||
|
||||
families.each do |family|
|
||||
describe "the #{family} family" do
|
||||
family_licenses = licenses.select { |l| l["family"] == family }
|
||||
primary = family_licenses.select { |l| l["variant"] == false }
|
||||
variants = family_licenses.select { |l| l["variant"] == true }
|
||||
describe "license categories" do
|
||||
families.each do |family|
|
||||
context "the #{family} family" do
|
||||
family_licenses = licenses.select { |l| l["family"] == family }
|
||||
primary = family_licenses.select { |l| l["variant"] == false }
|
||||
variants = family_licenses.select { |l| l["variant"] == true }
|
||||
|
||||
it "should only have one primary license" do
|
||||
expect(primary.count).to eql(1)
|
||||
end
|
||||
it "should only have one primary license" do
|
||||
expect(primary.count).to eql(1)
|
||||
end
|
||||
|
||||
it "all other licenses should be variants" do
|
||||
expected = family_licenses.count - 1
|
||||
expect(variants.count).to eql(expected)
|
||||
end
|
||||
it "all other licenses should be variants" do
|
||||
expected = family_licenses.count - 1
|
||||
expect(variants.count).to eql(expected)
|
||||
end
|
||||
|
||||
family_licenses.each do |license|
|
||||
describe "the #{license["title"]} license" do
|
||||
it "should have a unique slug" do
|
||||
dupes = family_licenses.select { |l| l["tab-slug"] == license["tab-slug"] }.count
|
||||
expect(dupes).to eql(1)
|
||||
end
|
||||
family_licenses.each do |license|
|
||||
context "the #{license["title"]} license" do
|
||||
it "should have a unique slug" do
|
||||
dupes = family_licenses.select { |l| l["tab-slug"] == license["tab-slug"] }.count
|
||||
expect(dupes).to eql(1)
|
||||
end
|
||||
|
||||
it "should have a valid tab-slug" do
|
||||
expect(license["tab-slug"]).to match(/[a-z0-9_]/)
|
||||
it "should have a valid tab-slug" do
|
||||
expect(license["tab-slug"]).to match(/[a-z0-9_]/)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,11 +1,13 @@
|
||||
require 'spec_helper'
|
||||
|
||||
licenses.each do |license|
|
||||
describe "The #{license["title"]} license" do
|
||||
it "should only contain supported fields" do
|
||||
matches = license["content"].scan /\[([a-z]+)\]/
|
||||
extra_fields = matches.flatten - fields.map { |f| f["name"] }
|
||||
expect(extra_fields).to be_empty
|
||||
describe "license fillable fields" do
|
||||
licenses.each do |license|
|
||||
context "The #{license["title"]} license" do
|
||||
it "should only contain supported fillable fields" do
|
||||
matches = license["content"].scan(/\[([a-z]+)\]/)
|
||||
extra_fields = matches.flatten - fields.map { |f| f["name"] }
|
||||
expect(extra_fields).to be_empty
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,31 +1,33 @@
|
||||
require 'spec_helper'
|
||||
|
||||
licenses.each do |license|
|
||||
describe "license meta" do
|
||||
licenses.each do |license|
|
||||
|
||||
# Manually load the raw license so we don't get thed defaults
|
||||
raw_fields = SafeYAML.load_file("_licenses/#{license["id"]}.txt")
|
||||
# Manually load the raw license so we don't get thed defaults
|
||||
raw_fields = SafeYAML.load_file("_licenses/#{license["id"]}.txt")
|
||||
|
||||
describe "The #{license["title"]} license" do
|
||||
it "should only contain supported meta fields" do
|
||||
extra_fields = raw_fields.keys - meta.map { |m| m["name"] }
|
||||
expect(extra_fields).to be_empty
|
||||
end
|
||||
context "The #{license["title"]} license" do
|
||||
it "should only contain supported meta fields" do
|
||||
extra_fields = raw_fields.keys - meta.map { |m| m["name"] }
|
||||
expect(extra_fields).to be_empty
|
||||
end
|
||||
|
||||
it "should contain all required meta fields" do
|
||||
required = meta.select { |m| m["required"] }.map { |m| m["name"] }
|
||||
missing = required - raw_fields.keys
|
||||
expect(missing).to be_empty
|
||||
end
|
||||
|
||||
if license["family"]
|
||||
it "should contain the required license variant fields" do
|
||||
missing = ["family", "tab-slug"] - license.keys
|
||||
it "should contain all required meta fields" do
|
||||
required = meta.select { |m| m["required"] }.map { |m| m["name"] }
|
||||
missing = required - raw_fields.keys
|
||||
expect(missing).to be_empty
|
||||
end
|
||||
else
|
||||
it "should not contain license family specific fields" do
|
||||
extra = ["variant", "family", "tab-slug"].select{ |f| raw_fields.keys.include?(f) }
|
||||
expect(extra).to be_empty
|
||||
|
||||
if license["family"]
|
||||
it "should contain the required license variant fields" do
|
||||
missing = ["family", "tab-slug"] - license.keys
|
||||
expect(missing).to be_empty
|
||||
end
|
||||
else
|
||||
it "should not contain license family specific fields" do
|
||||
extra = ["variant", "family", "tab-slug"].select{ |f| raw_fields.keys.include?(f) }
|
||||
expect(extra).to be_empty
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,22 +1,24 @@
|
||||
require 'spec_helper'
|
||||
|
||||
licenses.each do |license|
|
||||
describe "license rules" do
|
||||
licenses.each do |license|
|
||||
|
||||
groups = rules.keys
|
||||
groups = rules.keys
|
||||
|
||||
describe "The #{license["title"]} license" do
|
||||
groups.each do |group|
|
||||
context "The #{license["title"]} license" do
|
||||
groups.each do |group|
|
||||
|
||||
valid_tags = rules[group].map { |r| r["tag"] }
|
||||
valid_tags = rules[group].map { |r| r["tag"] }
|
||||
|
||||
describe "the #{group} group" do
|
||||
it "should exist" do
|
||||
expect(license[group]).to_not be_nil
|
||||
end
|
||||
context "the #{group} group" do
|
||||
it "should exist" do
|
||||
expect(license[group]).to_not be_nil
|
||||
end
|
||||
|
||||
it "should only contain valid tags" do
|
||||
extra = license[group] - valid_tags
|
||||
expect(extra).to be_empty
|
||||
it "should only contain valid tags" do
|
||||
extra = license[group] - valid_tags
|
||||
expect(extra).to be_empty
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,26 +1,28 @@
|
||||
require 'spec_helper'
|
||||
|
||||
licenses.each do |license|
|
||||
describe "licenses" do
|
||||
licenses.each do |license|
|
||||
|
||||
# "No license" isn't really a license, so no need to test
|
||||
next if license["id"] == "no-license"
|
||||
# "No license" isn't really a license, so no need to test
|
||||
next if license["id"] == "no-license"
|
||||
|
||||
describe "The #{license["title"]} license" do
|
||||
context "The #{license["title"]} license" do
|
||||
|
||||
let(:id) { license["id"] }
|
||||
let(:id) { license["id"] }
|
||||
|
||||
it "has an SPDX ID" do
|
||||
expect(spdx_ids).to include(id)
|
||||
end
|
||||
it "has an SPDX ID" do
|
||||
expect(spdx_ids).to include(id)
|
||||
end
|
||||
|
||||
it "uses its SPDX name" do
|
||||
spdx = find_spdx(id)
|
||||
expect(spdx[1]["name"].gsub(/ only$/,"")).to eql(license["title"])
|
||||
end
|
||||
it "uses its SPDX name" do
|
||||
spdx = find_spdx(id)
|
||||
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(id), "See https://git.io/vzCTV."
|
||||
context "industry approval" do
|
||||
it "should be approved by OSI or FSF or OD" do
|
||||
expect(approved_licenses).to include(id), "See https://git.io/vzCTV."
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user