storebound/tests/gradle-dir.test.ts

16 lines
936 B
TypeScript

import { expect, test } from 'bun:test';
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
import { tmpdir } from 'node:os';
import { join, resolve } from 'node:path';
import { pickGradle } from '../cli/lib/gradle';
test('an absolute play.build.dir / --dir stays absolute (it lost its leading slash under the root)', () => {
const base = mkdtempSync(join(tmpdir(), 'gdir-'));
try {
const root = join(base, 'store'), android = join(base, 'other', 'apps', 'native', 'android');
mkdirSync(root, { recursive: true }); mkdirSync(join(android, 'app'), { recursive: true });
writeFileSync(join(android, 'settings.gradle'), "include ':app'\n");
expect(resolve(pickGradle(root, { dir: android }).dir)).toBe(resolve(android));
expect(resolve(pickGradle(root, { dir: '../other/apps/native/android' }).dir)).toBe(resolve(android));
} finally { rmSync(base, { recursive: true, force: true }); }
});