MCPcopy
hub / github.com/cli/cli / TestManager_UpgradeExtension_BinaryExtension

Function TestManager_UpgradeExtension_BinaryExtension

pkg/cmd/extension/manager_test.go:514–577  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

512}
513
514func TestManager_UpgradeExtension_BinaryExtension(t *testing.T) {
515 dataDir := t.TempDir()
516 updateDir := t.TempDir()
517
518 reg := httpmock.Registry{}
519 defer reg.Verify(t)
520
521 assert.NoError(t, stubBinaryExtension(
522 filepath.Join(dataDir, "extensions", "gh-bin-ext"),
523 binManifest{
524 Owner: "owner",
525 Name: "gh-bin-ext",
526 Host: "example.com",
527 Tag: "v1.0.1",
528 }))
529
530 ios, _, stdout, stderr := iostreams.Test()
531 m := newTestManager(dataDir, updateDir, &http.Client{Transport: &reg}, nil, ios)
532 reg.Register(
533 httpmock.REST("GET", "api/v3/repos/owner/gh-bin-ext/releases/latest"),
534 httpmock.JSONResponse(
535 release{
536 Tag: "v1.0.2",
537 Assets: []releaseAsset{
538 {
539 Name: "gh-bin-ext-windows-amd64.exe",
540 APIURL: "https://example.com/release/cool2",
541 },
542 },
543 }))
544 reg.Register(
545 httpmock.REST("GET", "release/cool2"),
546 httpmock.StringResponse("FAKE UPGRADED BINARY"))
547
548 exts, err := m.list(false)
549 assert.NoError(t, err)
550 assert.Equal(t, 1, len(exts))
551 ext := exts[0]
552 ext.latestVersion = "v1.0.2"
553 err = m.upgradeExtension(ext, false)
554 assert.NoError(t, err)
555
556 manifest, err := os.ReadFile(filepath.Join(dataDir, "extensions/gh-bin-ext", manifestName))
557 assert.NoError(t, err)
558
559 var bm binManifest
560 err = yaml.Unmarshal(manifest, &bm)
561 assert.NoError(t, err)
562
563 assert.Equal(t, binManifest{
564 Name: "gh-bin-ext",
565 Owner: "owner",
566 Host: "example.com",
567 Tag: "v1.0.2",
568 Path: filepath.Join(dataDir, "extensions/gh-bin-ext/gh-bin-ext.exe"),
569 }, bm)
570
571 fakeBin, err := os.ReadFile(filepath.Join(dataDir, "extensions/gh-bin-ext/gh-bin-ext.exe"))

Callers

nothing calls this directly

Calls 13

VerifyMethod · 0.95
RegisterMethod · 0.95
TestFunction · 0.92
RESTFunction · 0.92
JSONResponseFunction · 0.92
StringResponseFunction · 0.92
stubBinaryExtensionFunction · 0.85
newTestManagerFunction · 0.85
JoinMethod · 0.80
listMethod · 0.80
EqualMethod · 0.80
upgradeExtensionMethod · 0.80

Tested by

no test coverage detected