open-nomad/ui/tests/acceptance/task-fs-test.js

110 lines
2.7 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
/* eslint-disable ember-a11y-testing/a11y-audit-called */ // Covered in behaviours/fs
import { module } from 'qunit';
import { setupApplicationTest } from 'ember-qunit';
import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
import browseFilesystem from './behaviors/fs';
let allocation;
let task;
let files, taskDirectory, directory, nestedDirectory;
module('Acceptance | task fs', function (hooks) {
setupApplicationTest(hooks);
setupMirage(hooks);
hooks.beforeEach(async function () {
server.create('agent');
server.create('node', 'forceIPv4');
const job = server.create('job', { createAllocations: false });
allocation = server.create('allocation', {
jobId: job.id,
clientStatus: 'running',
});
task = server.schema.taskStates.where({ allocationId: allocation.id })
.models[0];
task.name = 'task-name';
task.save();
this.task = task;
this.allocation = allocation;
// Reset files
files = [];
taskDirectory = server.create('allocFile', {
isDir: true,
name: task.name,
});
files.push(taskDirectory);
// Nested files
directory = server.create('allocFile', {
isDir: true,
name: 'directory',
parent: taskDirectory,
});
files.push(directory);
nestedDirectory = server.create('allocFile', {
isDir: true,
name: 'another',
parent: directory,
});
files.push(nestedDirectory);
files.push(
server.create('allocFile', 'file', {
name: 'something.txt',
fileType: 'txt',
parent: nestedDirectory,
})
);
files.push(
server.create('allocFile', {
isDir: true,
name: 'empty-directory',
parent: taskDirectory,
})
);
files.push(
server.create('allocFile', 'file', {
fileType: 'txt',
parent: taskDirectory,
})
);
files.push(
server.create('allocFile', 'file', {
fileType: 'txt',
parent: taskDirectory,
})
);
this.files = files;
this.directory = directory;
this.nestedDirectory = nestedDirectory;
});
browseFilesystem({
visitSegments: ({ allocation, task }) => ({
id: allocation.id,
name: task.name,
}),
getExpectedPathBase: ({ allocation, task }) =>
`/allocations/${allocation.id}/${task.name}/fs/`,
getTitleComponent: ({ task }) => `Task ${task.name} filesystem`,
getBreadcrumbComponent: ({ task }) => task.name,
getFilesystemRoot: ({ task }) => task.name,
pageObjectVisitFunctionName: 'visitTask',
pageObjectVisitPathFunctionName: 'visitTaskPath',
});
});