Adding optional QOL flags to gentest
Summary: This diff adds the ability to add 2 flags to gentest.rb that can help with debugging that I found myself wanting to use: * The ability to suspend the script. Meaning the chrome browser will pause after running each fixture so the user can inspect elements to see if their html is as expected. Normally, the browser just redirects to the next fixture * The ability to run a specific fixture instead of all fixtures. I found myself wanting to do this as I was changing one in the previous diff. If the user input is incorrect it just ignores it. Hopefully this will help make debugging this script a bit easier for noobs like me :P Reviewed By: NickGerleman Differential Revision: D49775228 fbshipit-source-id: 29933029119ee5afc0195213df70d4d2cf881a9e
This commit is contained in:
committed by
Facebook GitHub Bot
parent
e60ae290ea
commit
e099449c37
@@ -7,6 +7,7 @@
|
||||
require 'watir'
|
||||
require 'webdrivers'
|
||||
require 'fileutils'
|
||||
require 'optparse'
|
||||
|
||||
browser = Watir::Browser.new(:chrome, options: {
|
||||
"goog:loggingPrefs" => {
|
||||
@@ -18,7 +19,23 @@ browser = Watir::Browser.new(:chrome, options: {
|
||||
|
||||
Dir.chdir(File.dirname($0))
|
||||
|
||||
Dir['fixtures/*.html'].each do |file|
|
||||
options = OpenStruct.new
|
||||
OptionParser.new do |opts|
|
||||
opts.on("-s", "--suspend", "Pauses the script after each fixture to allow for debugging on Chrome. Press enter to go to the next fixure.") do
|
||||
options.suspend = true
|
||||
end
|
||||
opts.on("-f", "--fixture [FIXTURE]", String, "Only runs the script on the specific fixture.") do |f|
|
||||
fixture = "fixtures/" + f + ".html"
|
||||
if !File.file?(fixture)
|
||||
puts fixture + " does not exist."
|
||||
else
|
||||
options.fixture = fixture
|
||||
end
|
||||
end
|
||||
end.parse!
|
||||
|
||||
files = options.fixture ? options.fixture : "fixtures/*.html"
|
||||
Dir[files].each do |file|
|
||||
fixture = File.read(file)
|
||||
name = File.basename(file, '.*')
|
||||
puts "Generate #{name}"
|
||||
@@ -55,6 +72,10 @@ Dir['fixtures/*.html'].each do |file|
|
||||
f = File.open("../javascript/tests/generated/#{name}.test.ts", 'w')
|
||||
f.write eval(logs[2].message.sub(/^[^"]*/, '')).sub('YogaTest', name)
|
||||
f.close
|
||||
|
||||
if options.suspend
|
||||
gets
|
||||
end
|
||||
end
|
||||
File.delete('test.html')
|
||||
browser.close
|
||||
|
Reference in New Issue
Block a user