From 3851b7c01672eae9b7f9254fc9df834873653535 Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Wed, 1 Apr 2015 10:14:52 -0700 Subject: [PATCH] Add test for detecting color proximity --- github-linguist.gemspec | 1 + test/helper.rb | 1 + test/test_color_threshold.rb | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 test/test_color_threshold.rb diff --git a/github-linguist.gemspec b/github-linguist.gemspec index 8f3fe075..e680b9f5 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -23,4 +23,5 @@ Gem::Specification.new do |s| s.add_development_dependency 'pry' s.add_development_dependency 'rake' s.add_development_dependency 'yajl-ruby' + s.add_development_dependency 'color-proximity' end diff --git a/test/helper.rb b/test/helper.rb index a6a03672..ab3cc8fa 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -2,6 +2,7 @@ require "bundler/setup" require "minitest/autorun" require "mocha/setup" require "linguist" +require 'color-proximity' def fixtures_path File.expand_path("../fixtures", __FILE__) diff --git a/test/test_color_threshold.rb b/test/test_color_threshold.rb new file mode 100644 index 00000000..9d1faaab --- /dev/null +++ b/test/test_color_threshold.rb @@ -0,0 +1,20 @@ +require_relative "./helper" + +class TestColorThreshold < Minitest::Test + include Linguist + + def test_color_threshold + langs_with_colors = Language.all.reject { |language| language.color.nil? } + cp = ColorProximity.new(20, langs_with_colors.map(&:color)) + failing_threshold = [] + langs_with_colors.each do |lang| + state = cp.within_threshold?(lang.color[1..-1]) + unless state.first + failing_threshold << [lang, state.last] + end + end + message = "The following languages have failing color thresholds. Please modify the hex color.\n#{failing_threshold}" + + assert failing_threshold.empty?, message + end +end