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