Skip to content

Commit

Permalink
ignore docker on mac and fix prisma test
Browse files Browse the repository at this point in the history
  • Loading branch information
electrovir committed Sep 10, 2024
1 parent 0b38f4f commit ff06b28
Show file tree
Hide file tree
Showing 16 changed files with 363 additions and 272 deletions.
3 changes: 2 additions & 1 deletion packages/node/configs/c8.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
"clean": true,
"exclude": [
"**/*.test.ts",
"**/*.example.ts"
"**/*.example.ts",
"src/docker"
],
"include": [
"src/**/*.ts"
Expand Down
8 changes: 7 additions & 1 deletion packages/node/src/augments/os/operating-system.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
import {assert} from '@augment-vir/assert';
import {describe, it} from '@augment-vir/test';
import {currentOperatingSystem, OperatingSystem} from './operating-system.js';
import {currentOperatingSystem, isOperatingSystem, OperatingSystem} from './operating-system.js';

describe('currentOperatingSystem', () => {
it('has a valid value', () => {
assert.isEnumValue(currentOperatingSystem, OperatingSystem);
});
});

describe(isOperatingSystem.name, () => {
it('returns a boolean', () => {
assert.isBoolean(isOperatingSystem(OperatingSystem.Mac));
});
});
21 changes: 21 additions & 0 deletions packages/node/src/augments/os/operating-system.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,27 @@ export enum OperatingSystem {
*/
export const currentOperatingSystem: OperatingSystem = getOperatingSystem();

/**
* Checks if the current operating system is the requested one.
*
* @category Node : OS
* @category Package : @augment-vir/node
* @example
*
* ```ts
* import {isOperatingSystem, OperatingSystem} from '@augment-vir/node';
*
* if (isOperatingSystem(OperatingSystem.Mac)) {
* // do something
* }
* ```
*
* @package [`@augment-vir/node`](https://www.npmjs.com/package/@augment-vir/node)
*/
export function isOperatingSystem(operatingSystem: OperatingSystem): boolean {
return currentOperatingSystem === operatingSystem;
}

function getOperatingSystem(): OperatingSystem {
/** We can't test all of these on a single system. */
/* node:coverage ignore next 7 */
Expand Down
32 changes: 18 additions & 14 deletions packages/node/src/docker/containers/container-info.test.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
import {assert} from '@augment-vir/assert';
import {describe, it} from '@augment-vir/test';
import {docker} from '../../augments/docker.js';
import {dockerTest} from '../run-docker-test.mock.js';
import {runMockLongLivingContainer} from './run-container.mock.js';

const testContainerName = `test-${docker.container.getInfo.name}`;

describe(docker.container.getInfo.name, () => {
it('gets info', async () => {
await docker.container.kill(testContainerName);
await runMockLongLivingContainer(testContainerName);
const info = await docker.container.getInfo(testContainerName);
assert.isObject(info);
await docker.container.kill(testContainerName);
});
it('returns nothing if container is not running', async () => {
await docker.container.kill(testContainerName);
const info = await docker.container.getInfo(testContainerName);
assert.isUndefined(info);
});
});
describe(
docker.container.getInfo.name,
dockerTest(() => {
it('gets info', async () => {
await docker.container.kill(testContainerName);
await runMockLongLivingContainer(testContainerName);
const info = await docker.container.getInfo(testContainerName);
assert.isObject(info);
await docker.container.kill(testContainerName);
});
it('returns nothing if container is not running', async () => {
await docker.container.kill(testContainerName);
const info = await docker.container.getInfo(testContainerName);
assert.isUndefined(info);
});
}),
);
46 changes: 25 additions & 21 deletions packages/node/src/docker/containers/container-status.test.ts
Original file line number Diff line number Diff line change
@@ -1,29 +1,33 @@
import {assert} from '@augment-vir/assert';
import {describe, it} from '@augment-vir/test';
import {docker} from '../../augments/docker.js';
import {dockerTest} from '../run-docker-test.mock.js';
import {runMockLongLivingContainer} from './run-container.mock.js';

const testContainerName = `test-${docker.container.getLogs.name}`;

describe(docker.container.getLogs.name, () => {
it('gets all logs', async () => {
await docker.container.kill(testContainerName);
await runMockLongLivingContainer(testContainerName);
const logs = await docker.container.getLogs(testContainerName);
assert.strictEquals(logs, '');
await docker.container.kill(testContainerName);
});
it('gets the last log', async () => {
await docker.container.kill(testContainerName);
await runMockLongLivingContainer(testContainerName);
const logs = await docker.container.getLogs(testContainerName, 1);
assert.strictEquals(logs, '');
await docker.container.kill(testContainerName);
});
it('errors if container does not exist', async () => {
await docker.container.kill(testContainerName);
await assert.throws(docker.container.getLogs(testContainerName, 1), {
matchMessage: 'No such container',
describe(
docker.container.getLogs.name,
dockerTest(() => {
it('gets all logs', async () => {
await docker.container.kill(testContainerName);
await runMockLongLivingContainer(testContainerName);
const logs = await docker.container.getLogs(testContainerName);
assert.strictEquals(logs, '');
await docker.container.kill(testContainerName);
});
});
});
it('gets the last log', async () => {
await docker.container.kill(testContainerName);
await runMockLongLivingContainer(testContainerName);
const logs = await docker.container.getLogs(testContainerName, 1);
assert.strictEquals(logs, '');
await docker.container.kill(testContainerName);
});
it('errors if container does not exist', async () => {
await docker.container.kill(testContainerName);
await assert.throws(docker.container.getLogs(testContainerName, 1), {
matchMessage: 'No such container',
});
});
}),
);
86 changes: 45 additions & 41 deletions packages/node/src/docker/containers/copy-to-container.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,50 +3,54 @@ import {describe, it} from '@augment-vir/test';
import {readFile} from 'node:fs/promises';
import {docker} from '../../augments/docker.js';
import {recursiveFileReadDir, workspaceQueryPackageJsonPath} from '../../file-paths.mock.js';
import {dockerTest} from '../run-docker-test.mock.js';
import {runMockLongLivingContainer} from './run-container.mock.js';

const testContainerName = `test-${docker.container.copyTo.name}`;

describe(docker.container.copyTo.name, () => {
it('copies a file', async () => {
const copyToPath = '/tmp/hi.json';
await docker.container.kill(testContainerName);
await runMockLongLivingContainer(testContainerName);
await docker.container.copyTo({
containerAbsolutePath: copyToPath,
containerNameOrId: testContainerName,
hostPath: workspaceQueryPackageJsonPath,
describe(
docker.container.copyTo.name,
dockerTest(() => {
it('copies a file', async () => {
const copyToPath = '/tmp/hi.json';
await docker.container.kill(testContainerName);
await runMockLongLivingContainer(testContainerName);
await docker.container.copyTo({
containerAbsolutePath: copyToPath,
containerNameOrId: testContainerName,
hostPath: workspaceQueryPackageJsonPath,
});
const results = await docker.container.runCommand({
command: `cat ${copyToPath}`,
containerNameOrId: testContainerName,
});
assert.strictEquals(
results.stdout,
(await readFile(workspaceQueryPackageJsonPath)).toString(),
);
await docker.container.kill(testContainerName);
});
const results = await docker.container.runCommand({
command: `cat ${copyToPath}`,
containerNameOrId: testContainerName,
it('copies a dir', async () => {
const copyToPath = '/tmp/whole-dir';
await docker.container.kill(testContainerName);
await runMockLongLivingContainer(testContainerName);
await docker.container.copyTo({
containerAbsolutePath: copyToPath,
containerNameOrId: testContainerName,
hostPath: recursiveFileReadDir,
});
const results = await docker.container.runCommand({
command: `ls -la ${copyToPath} | awk '{print $9}'`,
containerNameOrId: testContainerName,
});
assert.deepEquals(results.stdout.trim().split('\n').sort(), [
'.',
'..',
'a-file.txt',
'b-file.txt',
'inner-dir',
]);
await docker.container.kill(testContainerName);
});
assert.strictEquals(
results.stdout,
(await readFile(workspaceQueryPackageJsonPath)).toString(),
);
await docker.container.kill(testContainerName);
});
it('copies a dir', async () => {
const copyToPath = '/tmp/whole-dir';
await docker.container.kill(testContainerName);
await runMockLongLivingContainer(testContainerName);
await docker.container.copyTo({
containerAbsolutePath: copyToPath,
containerNameOrId: testContainerName,
hostPath: recursiveFileReadDir,
});
const results = await docker.container.runCommand({
command: `ls -la ${copyToPath} | awk '{print $9}'`,
containerNameOrId: testContainerName,
});
assert.deepEquals(results.stdout.trim().split('\n').sort(), [
'.',
'..',
'a-file.txt',
'b-file.txt',
'inner-dir',
]);
await docker.container.kill(testContainerName);
});
});
}),
);
Loading

0 comments on commit ff06b28

Please sign in to comment.