diff options
author | Tristan Cacqueray <tdecacqu@redhat.com> | 2019-08-15 20:55:40 +0000 |
---|---|---|
committer | Tobias Henkel <tobias.henkel@bmw.de> | 2019-08-27 20:34:45 +0000 |
commit | f9fe0adfdb9a751cf0748475930802e7f4d9d5b9 (patch) | |
tree | 79eec1e4dff64730026be15bb35206419ee52374 /web/src/actions | |
parent | 0811c5025e8c255dff5d208da6c74edcfe9c6acd (diff) | |
download | zuul-f9fe0adfdb9a751cf0748475930802e7f4d9d5b9.tar.gz |
web: test trailing slash are removed from renderTree
This change refactors the renderTree method to test it without
React.
Change-Id: Id1fcce671a5f8c44057a135a406298048a53bdb3
Diffstat (limited to 'web/src/actions')
-rw-r--r-- | web/src/actions/build.js | 27 | ||||
-rw-r--r-- | web/src/actions/build.test.js | 9 |
2 files changed, 36 insertions, 0 deletions
diff --git a/web/src/actions/build.js b/web/src/actions/build.js index 69a8e3a23..c61aa8189 100644 --- a/web/src/actions/build.js +++ b/web/src/actions/build.js @@ -56,6 +56,33 @@ export const requestBuildOutput = () => ({ }) // job-output processing functions +export function renderTree(tenant, build, path, obj, textRenderer, defaultRenderer) { + const node = {} + let name = obj.name + + if ('children' in obj && obj.children) { + node.nodes = obj.children.map( + n => renderTree(tenant, build, path+obj.name+'/', n, + textRenderer, defaultRenderer)) + } + if (obj.mimetype === 'application/directory') { + name = obj.name + '/' + } else { + node.icon = 'fa fa-file-o' + } + + let log_url = build.log_url + if (log_url.endsWith('/')) { + log_url = log_url.slice(0, -1) + } + if (obj.mimetype === 'text/plain') { + node.text = textRenderer(tenant, build, path, name, log_url, obj) + } else { + node.text = defaultRenderer(log_url, path, name, obj) + } + return node +} + export function didTaskFail(task) { if (task.failed) { return true diff --git a/web/src/actions/build.test.js b/web/src/actions/build.test.js index 64ee81d98..a80aa5d0b 100644 --- a/web/src/actions/build.test.js +++ b/web/src/actions/build.test.js @@ -24,4 +24,13 @@ it('processes job-output properly', () => { expect(buildAction.hasInterestingKeys({rc: 42}, ['rc'])).toEqual(true) expect(buildAction.hasInterestingKeys({noop: 42}, ['rc'])).toEqual(false) + + // Check trailing / are removed + let obj = {children: [], mimetype: 'test', name: 'test'} + let tree = buildAction.renderTree( + {linkPrefix: 'test/'}, + {log_url: 'http://test/', uuid: 'test'}, + '/', obj, (a) => (a), (a) => (a)) + expect(tree).toEqual( + {'icon': 'fa fa-file-o', 'nodes': [], 'text': 'http://test'}) }) |