UNPKG

@plq/faker

Version:

A set of classes for mocking known data types such as browser history, browser download list, persona, domain name, Jira project, GitHub repository, etc.

54 lines 2.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const faker_1 = require("@faker-js/faker"); const base_extended_1 = require("./base-extended"); class MockTracker extends base_extended_1.BaseSiteMock { templates = { jira: [ ['{{url}}/browse/{{abbreviation}}-{{issueId}}', '{{abbreviation}}-{{issueId}} - {{summary}} - Atlassian Jira'], ['{{url}}/{{fakePath}}', '{{fakePath}} - Atlassian Jira'], ], youtrack: [ ['{{url}}/issue/{{abbreviation}}-{{issueId}}', '{{summary}}: YouTrack'], ['{{url}}/{{fakePath}}', '{{fakePath}}: YouTrack'], ], }; constructor(query) { super(query); this.reset(); } isProviderSupported() { return Boolean(this.providers .find(provider => this.domain.name.includes(provider))); } supportedProvider() { const providers = this.providers; return providers.find(provider => this.domain.name.includes(provider)) ?? providers[Math.floor(Math.random() * providers.length)]; } createMockItem() { const provider = this.supportedProvider(); const user = this.user.nickname.toLowerCase(); const project = this.project.shortName.toLowerCase(); const templatesArray = this.templates[provider]; const templates = templatesArray.map(templates => templates.map(template => faker_1.faker.helpers.mustache(template, { url: this.domain.full, abbreviation: this.project.abbreviation, issueId: faker_1.faker.string.numeric(5), summary: faker_1.faker.lorem.sentence(), }))); return { provider, user, project, path: `${user}/${project}`, url: this.isProviderSupported() ? `${this.domain.full}/${user}/${project}` : `https://${provider}.${faker_1.faker.internet.domainSuffix()}/${user}/${project}`, templates, isSupported: this.isProviderSupported(), }; } } exports.default = MockTracker; //# sourceMappingURL=tracker.js.map