angles-javascript-client
Version:
This is the javascript client for the Angles Dashboard. It allows you to store your test results.
124 lines • 4.26 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ScreenshotRequests = void 0;
const form_data_1 = __importDefault(require("form-data"));
const BaseRequests_1 = require("./BaseRequests");
class ScreenshotRequests extends BaseRequests_1.BaseRequests {
constructor(axiosInstance) {
super(axiosInstance);
}
saveScreenshot(storeScreenshot) {
const path = require('path');
const fs = require('fs');
const formData = new form_data_1.default();
const { buildId, view, timestamp, tags, platform } = storeScreenshot;
formData.append("buildId", buildId);
formData.append("view", view);
formData.append("timestamp", timestamp.toISOString());
if (tags)
formData.append("tags", JSON.stringify(tags));
if (platform) {
Object.entries(platform).forEach(([key, value]) => {
formData.append(key, value);
});
}
const fullPath = path.resolve(storeScreenshot.filePath);
const fileName = path.basename(fullPath);
const fileStream = fs.createReadStream(fullPath);
formData.append('screenshot', fileStream, fileName);
return this.post(`screenshot/`, formData, {
headers: formData.getHeaders(),
});
}
/**
* Retrieves the screenshots for a specified build
* @param {string} buildId
* @param {number} [limit=100]
*/
getScreenshotsForBuild(buildId, limit) {
const params = { buildId };
if (limit) {
params.limit = limit;
}
return this.get(`screenshot/`, {
params,
});
}
getScreenshots(screenshotIds) {
return this.get('screenshot/', {
params: {
screenshotIds: screenshotIds.join(',')
}
});
}
getScreenshotViews(view, limit) {
return this.get('screenshot/views', {
params: {
view,
limit,
}
});
}
getScreenshotTags(tag, limit) {
return this.get('screenshot/tags', {
params: {
tag,
limit,
}
});
}
getScreenshotHistoryByView(view, platformId, limit, offset) {
return this.get('/screenshot/', {
params: {
view,
platformId,
limit,
offset,
},
});
}
getScreenshotsGroupedByPlatform(view, numberOfDays) {
return this.get('screenshot/grouped/platform', {
params: { view, numberOfDays },
});
}
getScreenshotsGroupedByTag(tag, numberOfDays) {
return this.get('screenshot/grouped/tag', {
params: { tag, numberOfDays },
});
}
getScreenshot(screenshotId) {
return this.get(`screenshot/${screenshotId}`);
}
deleteScreenshot(screenshotId) {
return this.delete(`screenshot/${screenshotId}`);
}
// TODO: Update screenshot
getScreenshotImage(screenshotId) {
return this.get(`screenshot/${screenshotId}/image`, { responseType: 'arraybuffer' });
}
getDynamicBaselineImage(screenshotId, numberOfImagesToCompare) {
let path = `screenshot/${screenshotId}/dynamic-baseline`;
if (numberOfImagesToCompare && numberOfImagesToCompare > 0) {
path = `${path}?numberOfImagesToCompare=${numberOfImagesToCompare}`;
}
return this.get(path);
}
// TODO: Get screenshot compare Resemblejs JSON
// TODO: get screenshot compare Resemblejs Image
getBaselineCompareImage(screenshotId, cache) {
const useCache = cache || false;
return this.get(`screenshot/${screenshotId}/baseline/compare/image/`, {
params: { useCache },
responseType: 'arraybuffer'
});
}
getBaselineCompare(screenshotId) {
return this.get(`screenshot/${screenshotId}/baseline/compare/`);
}
}
exports.ScreenshotRequests = ScreenshotRequests;
//# sourceMappingURL=ScreenshotRequests.js.map