testUnconfiguredUrlsGetNoToken

tcmts.cli.sync.test.testUnconfiguredUrlsGetNoToken · #byvf4pda · term

A URL that isn't a configured remote is asked with no token, whatever $TCM_TOKEN holds (a server's own token went to any library source, an announcement's included); a configured remote is asked with the token it was added with.

import { Codebase } from "#codebase/tcmts/cli/codebase";
import { openRemote } from "#codebase/tcmts/cli/sync";
import { tempDir } from "#codebase/tcmts/cli/test/e2e/harness";
import assert from "node:assert/strict";
import http from "node:http";

export const testUnconfiguredUrlsGetNoToken = async () => {
  const heard: (string | undefined)[] = [];
  const server = http.createServer((req, res) => {
    heard.push(req.headers.authorization);
    res.writeHead(404).end();
  });
  await new Promise<void>((r) => server.listen(0, "127.0.0.1", r));
  const url = `http://127.0.0.1:${(server.address() as { port: number }).port}`;
  const session = process.env.TCM_BRANCH;
  const token = process.env.TCM_TOKEN;
  delete process.env.TCM_BRANCH;
  process.env.TCM_TOKEN = "the-servers-own-token";
  try {
    const cb = Codebase.init(tempDir("no token"));
    await openRemote(cb, url)
      .remote.branch("main")
      .catch(() => undefined);
    cb.store.setSetting("remote.origin", JSON.stringify({ url, token: "origins-token" }));
    await openRemote(cb, "origin")
      .remote.branch("main")
      .catch(() => undefined);
    assert.deepEqual(heard, [undefined, "Bearer origins-token"]);
  } finally {
    server.close();
    if (session !== undefined) process.env.TCM_BRANCH = session;
    if (token === undefined) delete process.env.TCM_TOKEN;
    else process.env.TCM_TOKEN = token;
  }
}

uses