homebrew-core/Formula/graphql-cli.rb

60 lines
1.7 KiB
Ruby

require "language/node"
class GraphqlCli < Formula
desc "Command-line tool for common GraphQL development workflows"
homepage "https://github.com/Urigo/graphql-cli"
url "https://registry.npmjs.org/graphql-cli/-/graphql-cli-4.1.0.tgz"
sha256 "c52d62ac108d4a3f711dbead0939bd02e3e2d0c82f8480fd76fc28f285602f5c"
license "MIT"
livecheck do
url :stable
end
bottle do
sha256 "02d60908557d5dedf63fffe66a51f5829807abd910b5460a2ae44d7b8d208142" => :big_sur
sha256 "5060d007d13a695709ff9afaa16a1492d8645e17ab78ec2b14650e0c7a305e55" => :catalina
sha256 "212bf2d20997a930838775736ca468dc25cbd3c3978c0189f8a435873a029286" => :mojave
sha256 "d8f266f129027b1fe731c12264f7b8679c271ecdb6418cef72dba0a730e99771" => :high_sierra
end
depends_on "node"
uses_from_macos "expect" => :test
def install
system "npm", "install", *Language::Node.std_npm_install_args(libexec)
bin.install_symlink Dir["#{libexec}/bin/*"]
# Avoid references to Homebrew shims
rm_f "#{libexec}/lib/node_modules/graphql-cli/node_modules/websocket/builderror.log"
end
test do
script = (testpath/"test.sh")
script.write <<~EOS
#!/usr/bin/env expect -f
set timeout -1
spawn #{bin}/graphql init
expect -exact "Select the best option for you"
send -- "1\r"
expect -exact "? What is the name of the project?"
send -- "brew\r"
expect -exact "? Choose a template to bootstrap"
send -- "1\r"
expect eof
EOS
script.chmod 0700
system "./test.sh"
assert_predicate testpath/"brew", :exist?
assert_match "Graphback runtime template with Apollo Server and PostgreSQL",
File.read(testpath/"brew/package.json")
end
end