Update factory-based fs tests to sort properly
This commit is contained in:
parent
7780713bfa
commit
e84604fcdb
|
@ -11,6 +11,15 @@ export function findLeader(schema) {
|
|||
return `${agent.address}:${agent.tags.port}`;
|
||||
}
|
||||
|
||||
export function filesForPath(allocFiles, filterPath) {
|
||||
return allocFiles.where(
|
||||
file =>
|
||||
(!filterPath || file.path.startsWith(filterPath)) &&
|
||||
file.path.length > filterPath.length &&
|
||||
!file.path.substr(filterPath.length + 1).includes('/')
|
||||
);
|
||||
}
|
||||
|
||||
export default function() {
|
||||
this.timing = 0; // delay for each request, automatically set to 0 during testing
|
||||
|
||||
|
@ -307,14 +316,7 @@ export default function() {
|
|||
const clientAllocationFSLsHandler = function({ allocFiles }, { queryParams }) {
|
||||
// Ignore the task name at the beginning of the path
|
||||
const filterPath = queryParams.path.substr(queryParams.path.indexOf('/') + 1);
|
||||
|
||||
const files = allocFiles.where(
|
||||
file =>
|
||||
(!filterPath || file.path.startsWith(filterPath)) &&
|
||||
file.path.length > filterPath.length &&
|
||||
!file.path.substr(filterPath.length + 1).includes('/')
|
||||
);
|
||||
|
||||
const files = filesForPath(allocFiles, filterPath);
|
||||
return this.serialize(files);
|
||||
};
|
||||
|
||||
|
|
|
@ -6,9 +6,9 @@ import moment from 'moment';
|
|||
|
||||
import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
|
||||
import Response from 'ember-cli-mirage/response';
|
||||
import moment from 'moment';
|
||||
|
||||
import { formatBytes } from 'nomad-ui/helpers/format-bytes';
|
||||
import { filesForPath } from 'nomad-ui/mirage/config';
|
||||
|
||||
import FS from 'nomad-ui/tests/pages/allocations/task/fs';
|
||||
|
||||
|
@ -16,6 +16,20 @@ let allocation;
|
|||
let task;
|
||||
let files;
|
||||
|
||||
const fileSort = (prop, files) => {
|
||||
let dir = [];
|
||||
let file = [];
|
||||
files.forEach(f => {
|
||||
if (f.isDir) {
|
||||
dir.push(f);
|
||||
} else {
|
||||
file.push(f);
|
||||
}
|
||||
});
|
||||
|
||||
return dir.sortBy(prop).concat(file.sortBy(prop));
|
||||
};
|
||||
|
||||
module('Acceptance | task fs', function(hooks) {
|
||||
setupApplicationTest(hooks);
|
||||
setupMirage(hooks);
|
||||
|
@ -89,6 +103,8 @@ module('Acceptance | task fs', function(hooks) {
|
|||
test('navigating allocation filesystem', async function(assert) {
|
||||
await FS.visitPath({ id: allocation.id, name: task.name, path: '/' });
|
||||
|
||||
const sortedFiles = fileSort('name', filesForPath(this.server.schema.allocFiles, '').models);
|
||||
|
||||
assert.ok(FS.fileViewer.isHidden);
|
||||
|
||||
assert.equal(FS.directoryEntries.length, 4);
|
||||
|
@ -100,7 +116,7 @@ module('Acceptance | task fs', function(hooks) {
|
|||
assert.equal(FS.breadcrumbs[0].text, 'task-name');
|
||||
|
||||
FS.directoryEntries[0].as(directory => {
|
||||
const fileRecord = files[0];
|
||||
const fileRecord = sortedFiles[0];
|
||||
assert.equal(directory.name, fileRecord.name, 'directories should come first');
|
||||
assert.ok(directory.isDirectory);
|
||||
assert.equal(directory.size, '', 'directory sizes are hidden');
|
||||
|
@ -109,7 +125,7 @@ module('Acceptance | task fs', function(hooks) {
|
|||
});
|
||||
|
||||
FS.directoryEntries[2].as(file => {
|
||||
const fileRecord = files[4];
|
||||
const fileRecord = sortedFiles[2];
|
||||
assert.equal(file.name, fileRecord.name);
|
||||
assert.ok(file.isFile);
|
||||
assert.equal(file.size, formatBytes([fileRecord.size]));
|
||||
|
@ -281,9 +297,12 @@ module('Acceptance | task fs', function(hooks) {
|
|||
|
||||
test('viewing a file', async function(assert) {
|
||||
await FS.visitPath({ id: allocation.id, name: task.name, path: '/' });
|
||||
await FS.directoryEntries[2].visit();
|
||||
|
||||
const fileRecord = files[4];
|
||||
const sortedFiles = fileSort('name', filesForPath(this.server.schema.allocFiles, '').models);
|
||||
const fileRecord = sortedFiles.find(f => !f.isDir);
|
||||
const fileIndex = sortedFiles.indexOf(fileRecord);
|
||||
|
||||
await FS.directoryEntries[fileIndex].visit();
|
||||
|
||||
assert.equal(FS.breadcrumbsText, `${task.name} ${fileRecord.name}`);
|
||||
|
||||
|
|
Loading…
Reference in New Issue