1+ bats_load_library " bats-assert"
2+ bats_load_library " bats-file"
3+ bats_load_library " bats-support"
4+
5+ setup_file () {
6+ export CLI_BIN=" $( dirname " ${CLI_BIN} " ) /../main.js"
7+ }
8+
9+ setup () {
10+ export REGISTRY_PATH=" ${TEST_TMPDIR} /bazel-central-registry"
11+ mkdir -p " ${REGISTRY_PATH} /modules"
12+ }
13+
14+ teardown () {
15+ rm -rf " ${TEST_TMPDIR} /*"
16+ }
17+
18+ swap_source_url () {
19+ local SRC=$1
20+ local URL=$2
21+
22+ cat " ${SRC} " | jq " .url = \" ${URL} \" " > " ${TEST_TMPDIR} /tmp"
23+ mv " ${TEST_TMPDIR} /tmp" " ${SRC} "
24+ }
25+
26+ @test ' no_args_shows_help' {
27+ run " ${NODE_BIN} " " ${CLI_BIN} "
28+
29+ assert_output --partial ' Not enough non-option arguments: got 0, need at least 1'
30+ assert_output --partial ' publish-to-bcr <cmd> [args]'
31+
32+ assert_failure
33+ }
34+
35+ @test ' --help' {
36+ run " ${NODE_BIN} " " ${CLI_BIN} " --help
37+
38+ assert_output --partial ' publish-to-bcr <cmd> [args]'
39+ assert_output --partial ' publish-to-bcr create-entry Create a new module version entry for the BCR'
40+ assert_output --partial ' --version Show version number'
41+
42+ assert_success
43+ }
44+
45+ @test ' create entry with tar archive' {
46+ FIXTURE=" e2e/fixtures/versioned"
47+ cp -R " ${FIXTURE} " " ${TEST_TMPDIR} /"
48+ FIXTURE=" ${TEST_TMPDIR} /$( basename " ${FIXTURE} " ) "
49+ TEMPLATES_DIR=" ${FIXTURE} /.bcr"
50+ RELEASE_ARCHIVE=" e2e/fixtures/versioned-versioned-1.0.0.tar"
51+
52+ swap_source_url " ${TEMPLATES_DIR} /source.template.json" " file://$( realpath " ${RELEASE_ARCHIVE} " ) "
53+
54+ run " ${NODE_BIN} " " ${CLI_BIN} " create-entry --local-registry " ${REGISTRY_PATH} " --templates-dir " ${TEMPLATES_DIR} " --module-version 1.0.0 --github-repository owner/versioned --tag v1.0.0
55+
56+ assert_success
57+
58+ ENTRY_PATH=" ${REGISTRY_PATH} /modules/versioned"
59+
60+ assert_file_exists " ${ENTRY_PATH} /metadata.json"
61+ assert_file_exists " ${ENTRY_PATH} /1.0.0/MODULE.bazel"
62+ assert_file_exists " ${ENTRY_PATH} /1.0.0/source.json"
63+ assert_file_exists " ${ENTRY_PATH} /1.0.0/presubmit.yml"
64+ }
65+
66+ @test ' create entry with zip archive' {
67+ FIXTURE=" e2e/fixtures/zip"
68+ cp -R " ${FIXTURE} " " ${TEST_TMPDIR} /"
69+ FIXTURE=" ${TEST_TMPDIR} /$( basename " ${FIXTURE} " ) "
70+ TEMPLATES_DIR=" ${FIXTURE} /.bcr"
71+ RELEASE_ARCHIVE=" e2e/fixtures/zip-zip-1.0.0.zip"
72+
73+ swap_source_url " ${TEMPLATES_DIR} /source.template.json" " file://$( realpath " ${RELEASE_ARCHIVE} " ) "
74+
75+ run " ${NODE_BIN} " " ${CLI_BIN} " create-entry --local-registry " ${REGISTRY_PATH} " --templates-dir " ${TEMPLATES_DIR} " --module-version 1.0.0 --github-repository owner/zip --tag v1.0.0
76+
77+ assert_success
78+
79+ ENTRY_PATH=" ${REGISTRY_PATH} /modules/zip"
80+
81+ assert_file_exists " ${ENTRY_PATH} /metadata.json"
82+ assert_file_exists " ${ENTRY_PATH} /1.0.0/MODULE.bazel"
83+ assert_file_exists " ${ENTRY_PATH} /1.0.0/source.json"
84+ assert_file_exists " ${ENTRY_PATH} /1.0.0/presubmit.yml"
85+ }
86+
87+ @test ' missing OWNER/REPO vars' {
88+ FIXTURE=" e2e/fixtures/versioned"
89+ cp -R " ${FIXTURE} " " ${TEST_TMPDIR} /"
90+ FIXTURE=" ${TEST_TMPDIR} /$( basename " ${FIXTURE} " ) "
91+ TEMPLATES_DIR=" ${FIXTURE} /.bcr"
92+ RELEASE_ARCHIVE=" e2e/fixtures/versioned-versioned-1.0.0.tar"
93+
94+ swap_source_url " ${TEMPLATES_DIR} /source.template.json" " file://$( realpath " ${RELEASE_ARCHIVE} " ) "
95+
96+ run " ${NODE_BIN} " " ${CLI_BIN} " create-entry --local-registry " ${REGISTRY_PATH} " --templates-dir " ${TEMPLATES_DIR} " --module-version 1.0.0 --tag v1.0.0
97+
98+ assert_failure
99+
100+ assert_output --partial ' Did you forget to pass --github-repository to substitute the OWNER and REPO variables?'
101+ }
0 commit comments