1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
require 'test_helper'
require 'camping'
require 'camping/commands'
Camping.goes :Generator
class Generator::Test < TestCase
def app_name(string)
Camping::CommandsHelpers.app_name_from_input string
end
# the app_name_from_input method normalizes the input for the camping new command.
# making sure it works right is kinda important.
def test_app_name_from_input_method
# input is expected, a symbol camel cased
app_name(:AppApp) => {app_name:, snake_name:, camel_name:}
assert_equal :AppApp, app_name, "app_name was unexpected: #{app_name}"
assert_equal "app_app", snake_name, "snake_name was unexpected: #{snake_name}"
assert_equal "AppApp", camel_name, "camel_name was unexpected: #{camel_name}"
# input is un expected, a camel cased string
app_name("AppApp") => {app_name:, snake_name:, camel_name:}
assert_equal :AppApp, app_name, "app_name was unexpected: #{app_name}"
assert_equal "app_app", snake_name, "snake_name was unexpected: #{snake_name}"
assert_equal "AppApp", camel_name, "camel_name was unexpected: #{camel_name}"
# input is un unexpected snake cased string
app_name("app_app") => {app_name:, snake_name:, camel_name:}
assert_equal :AppApp, app_name, "app_name was unexpected: #{app_name}"
assert_equal "app_app", snake_name, "snake_name was unexpected: #{snake_name}"
assert_equal "AppApp", camel_name, "camel_name was unexpected: #{camel_name}"
# input is un unexpected snake cased symbol
app_name(:app_app) => {app_name:, snake_name:, camel_name:}
assert_equal :AppApp, app_name, "app_name was unexpected: #{app_name}"
assert_equal "app_app", snake_name, "snake_name was unexpected: #{snake_name}"
assert_equal "AppApp", camel_name, "camel_name was unexpected: #{camel_name}"
end
# Generates expected directory Structure
#
# Camping has an expected directory structure:
#
# .gitignore
# .ruby-version
# Gemfile
# Rakefile
# camp.rb
# config.kdl
# src/
# lib/
# public/
# test/
# apps/
#
# This test checks to make certain that the generator command creates this
# directory structure.
def test_app_generates_directory_structure
move_to_tmp
Camping::Commands.new_cmd
res, ignored = [Dir.glob('*').select {|f| !File.directory? f },
Dir.glob('*').select {|f| File.directory? f }], Dir.glob(".*")
assert res[0].include?('Gemfile'), "mising Gemfile"
assert res[0].include?('README.md'), "missing README.md"
assert res[0].include?('Rakefile'), "missing Rakefile"
assert res[0].include?('camp.rb'), "missing camp.rb"
assert res[0].include?('config.kdl'), "missing config.kdl"
assert res[1].include?('public'), "missing public folder."
assert res[1].include?('test'), "missing test folder."
assert ignored.include?('.gitignore'), ".gitignore is missing."
assert ignored.include?('.ruby-version'), ".ruby-version is missing."
leave_tmp
end
end
|