diff --git a/lib/rspec_api_documentation/html_writer.rb b/lib/rspec_api_documentation/html_writer.rb index 818f7cae..d669bb5b 100644 --- a/lib/rspec_api_documentation/html_writer.rb +++ b/lib/rspec_api_documentation/html_writer.rb @@ -73,6 +73,7 @@ def dirname def filename basename = description.downcase.gsub(/\s+/, '_').gsub(/[^a-z_]/, '') + basename = Digest::MD5.new.update(description).to_s if basename.blank? "#{basename}.html" end diff --git a/spec/html_writer_spec.rb b/spec/html_writer_spec.rb index 21baf4b9..8000342a 100644 --- a/spec/html_writer_spec.rb +++ b/spec/html_writer_spec.rb @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- require 'spec_helper' describe RspecApiDocumentation::HtmlWriter do @@ -31,3 +32,25 @@ end end end + +describe RspecApiDocumentation::HtmlExample do + let(:metadata) { {} } + let(:group) { RSpec::Core::ExampleGroup.describe("Orders", metadata) } + let(:example) { group.example("Ordering a cup of coffee") {} } + let(:configuration) { RspecApiDocumentation::Configuration.new } + let(:html_example) { described_class.new(example, configuration) } + + it "should have downcased filename" do + html_example.filename.should == "ordering_a_cup_of_coffee.html" + end + + describe "multi charctor example name" do + let(:label) { "コーヒーが順番で並んでいること" } + let(:example) { group.example(label) {} } + + it "should have downcased filename" do + filename = Digest::MD5.new.update(label).to_s + html_example.filename.should == filename + ".html" + end + end +end