move docs back repo

This commit is contained in:
2026-03-10 19:47:16 -07:00
parent f7ce3371a1
commit 5f320edab5
73 changed files with 7813 additions and 53 deletions

View File

@@ -13,20 +13,20 @@ function createWorkspace(name: string): string {
return fs.mkdtempSync(path.join(baseDir, `${name}-`));
}
test('resolveConfigExampleOutputPaths includes sibling docs repo and never local docs/public', () => {
const workspace = createWorkspace('with-docs-repo');
test('resolveConfigExampleOutputPaths includes in-repo docs site and never local docs/public', () => {
const workspace = createWorkspace('with-docs-site');
const projectRoot = path.join(workspace, 'SubMiner');
const docsRepoRoot = path.join(workspace, 'subminer-docs');
const docsSiteRoot = path.join(projectRoot, 'docs-site');
fs.mkdirSync(projectRoot, { recursive: true });
fs.mkdirSync(docsRepoRoot, { recursive: true });
fs.mkdirSync(docsSiteRoot, { recursive: true });
try {
const outputPaths = resolveConfigExampleOutputPaths({ cwd: projectRoot });
assert.deepEqual(outputPaths, [
path.join(projectRoot, 'config.example.jsonc'),
path.join(docsRepoRoot, 'public', 'config.example.jsonc'),
path.join(docsSiteRoot, 'public', 'config.example.jsonc'),
]);
assert.equal(
outputPaths.includes(path.join(projectRoot, 'docs', 'public', 'config.example.jsonc')),
@@ -37,8 +37,8 @@ test('resolveConfigExampleOutputPaths includes sibling docs repo and never local
}
});
test('resolveConfigExampleOutputPaths stays repo-local when sibling docs repo is absent', () => {
const workspace = createWorkspace('without-docs-repo');
test('resolveConfigExampleOutputPaths stays repo-local when docs site is absent', () => {
const workspace = createWorkspace('without-docs-site');
const projectRoot = path.join(workspace, 'SubMiner');
fs.mkdirSync(projectRoot, { recursive: true });
@@ -55,11 +55,11 @@ test('resolveConfigExampleOutputPaths stays repo-local when sibling docs repo is
test('writeConfigExampleArtifacts creates parent directories for resolved outputs', () => {
const workspace = createWorkspace('write-artifacts');
const projectRoot = path.join(workspace, 'SubMiner');
const docsRepoRoot = path.join(workspace, 'subminer-docs');
const docsSiteRoot = path.join(projectRoot, 'docs-site');
const template = '{\n "ok": true\n}\n';
fs.mkdirSync(projectRoot, { recursive: true });
fs.mkdirSync(docsRepoRoot, { recursive: true });
fs.mkdirSync(docsSiteRoot, { recursive: true });
try {
const writtenPaths = writeConfigExampleArtifacts(template, {
@@ -69,11 +69,11 @@ test('writeConfigExampleArtifacts creates parent directories for resolved output
assert.deepEqual(writtenPaths, [
path.join(projectRoot, 'config.example.jsonc'),
path.join(docsRepoRoot, 'public', 'config.example.jsonc'),
path.join(docsSiteRoot, 'public', 'config.example.jsonc'),
]);
assert.equal(fs.readFileSync(path.join(projectRoot, 'config.example.jsonc'), 'utf8'), template);
assert.equal(
fs.readFileSync(path.join(docsRepoRoot, 'public', 'config.example.jsonc'), 'utf8'),
fs.readFileSync(path.join(docsSiteRoot, 'public', 'config.example.jsonc'), 'utf8'),
template,
);
} finally {

View File

@@ -11,17 +11,17 @@ type ConfigExampleFsDeps = {
export function resolveConfigExampleOutputPaths(options?: {
cwd?: string;
docsRepoName?: string;
docsSiteDirName?: string;
existsSync?: (candidate: string) => boolean;
}): string[] {
const cwd = options?.cwd ?? process.cwd();
const existsSync = options?.existsSync ?? fs.existsSync;
const docsRepoName = options?.docsRepoName ?? 'subminer-docs';
const docsSiteDirName = options?.docsSiteDirName ?? 'docs-site';
const outputPaths = [path.join(cwd, 'config.example.jsonc')];
const docsRepoRoot = path.resolve(cwd, '..', docsRepoName);
const docsSiteRoot = path.join(cwd, docsSiteDirName);
if (existsSync(docsRepoRoot)) {
outputPaths.push(path.join(docsRepoRoot, 'public', 'config.example.jsonc'));
if (existsSync(docsSiteRoot)) {
outputPaths.push(path.join(docsSiteRoot, 'public', 'config.example.jsonc'));
}
return outputPaths;
@@ -31,7 +31,7 @@ export function writeConfigExampleArtifacts(
template: string,
options?: {
cwd?: string;
docsRepoName?: string;
docsSiteDirName?: string;
deps?: ConfigExampleFsDeps;
},
): string[] {
@@ -40,7 +40,7 @@ export function writeConfigExampleArtifacts(
const log = options?.deps?.log ?? console.log;
const outputPaths = resolveConfigExampleOutputPaths({
cwd: options?.cwd,
docsRepoName: options?.docsRepoName,
docsSiteDirName: options?.docsSiteDirName,
existsSync: options?.deps?.existsSync,
});