UNPKG

@microfocus/alm-octane-js-rest-sdk

Version:
145 lines (144 loc) 6.71 kB
"use strict"; /* * Copyright 2020-2023 Open Text. * * The only warranties for products and services of Open Text and * its affiliates and licensors (“Open Text”) are as may be set forth * in the express warranty statements accompanying such products and services. * Nothing herein should be construed as constituting an additional warranty. * Open Text shall not be liable for technical or editorial errors or * omissions contained herein. The information contained herein is subject * to change without notice. * * Except as specifically indicated otherwise, this document contains * confidential information and a valid license is required for possession, * use or copying. If this work is provided to the U.S. Government, * consistent with FAR 12.211 and 12.212, Commercial Computer Software, * Computer Software Documentation, and Technical Data for Commercial Items are * licensed to the U.S. Government under vendor's standard commercial license. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /** * Note: This can only be tested if tech preview is *on* since attachments need tech preview to work * correctly */ /* eslint-env mocha */ const assert_1 = __importDefault(require("assert")); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const query_1 = __importDefault(require("../../../lib/query")); const reference_1 = __importDefault(require("../../../lib/generate-routes/models/reference")); const initializeOctaneClient = require('./helper').initializeOctaneClient; describe('[attachments - vanilla]', function () { // @ts-ignore this.timeout(60000); // @ts-ignore this.slow(250); const attachmentName = 'attachment.txt'; const attachmentFile = path_1.default.join(__dirname, 'attachment-test.txt'); const attachmentFileContent = 'This is an attachment test file.'; let client; let defectId; let attachmentID; before('initialize the Octane client', function (done) { const self = this; initializeOctaneClient(function (err, aClient) { if (err) { const msg = err.message; console.log('Aborted - %s', typeof msg === 'string' ? msg : JSON.stringify(msg)); self.skip(); } else { client = aClient; fs_1.default.writeFileSync(attachmentFile, attachmentFileContent); // create a defect for attachments client.workItemRoots.getAll({ limit: 1 }, function (err, workItemRoots) { assert_1.default.strictEqual(err, null); assert_1.default.strictEqual(workItemRoots.length, 1); client.severities.getAll({}, function (err, severities) { assert_1.default.strictEqual(err, null); (0, assert_1.default)(severities.length > 0); const q = query_1.default.field('entity').equal('defect'); client.phases.getAll({ query: q }, function (err, phases) { assert_1.default.strictEqual(err, null); (0, assert_1.default)(phases.length > 0); const defect = { name: 'defectforattachment', parent: workItemRoots[0], severity: severities[0], phase: phases[0], }; client.defects.create(defect, function (err, defect) { assert_1.default.strictEqual(err, null); (0, assert_1.default)(defect.id); defectId = defect.id; createAttachment(done); }); }); }); }); } }); }); function createAttachment(done) { const attachment = { name: attachmentName, file: attachmentFile, owner_work_item: new reference_1.default(defectId, 'work_item'), }; client.attachments.create(attachment, function (err, attachment) { assert_1.default.strictEqual(err, null); (0, assert_1.default)(attachment.id); attachmentID = attachment.id; done(); }); } after('delete the temporary test file', function (done) { if (fs_1.default.existsSync(attachmentFile)) { fs_1.default.unlinkSync(attachmentFile); } client.defects.delete({ id: defectId }, function () { done(); }); }); it('should successfully get all attachments list', function (done) { client.attachments.getAll({}, function (err, attachments) { assert_1.default.strictEqual(err, null); (0, assert_1.default)(attachments.meta.total_count > 0); done(); }); }); it('should successfully get the attachment entity data', function (done) { client.attachments.get({ id: attachmentID, fields: 'name' }, function (err, attachment) { assert_1.default.strictEqual(err, null); assert_1.default.strictEqual(attachment.name, attachmentName); done(); }); }); it('should successfully get the attachment binary data', function (done) { client.attachments.download({ id: attachmentID, filename: attachmentName }, function (err, data) { assert_1.default.strictEqual(err, null); assert_1.default.strictEqual(data.toString(), attachmentFileContent); done(); }); }); it('should successfully delete the attachment', function (done) { client.attachments.delete({ id: attachmentID }, function (err) { assert_1.default.strictEqual(err, null); done(); }); }); });