unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
156 lines • 5.45 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const notfound_error_1 = __importDefault(require("../../lib/error/notfound-error"));
class FakeProjectStore {
constructor() {
this.projects = [];
this.projectEnvironment = new Map();
}
getEnvironmentsForProject() {
throw new Error('Method not implemented.');
}
getProjectLinksForEnvironments(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
environments) {
throw new Error('Method not implemented.');
}
async addEnvironmentToProject(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
id,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
environment) {
const environments = this.projectEnvironment.get(id) || new Set();
environments.add(environment);
this.projectEnvironment.set(id, environments);
}
createInternal(project) {
const newProj = {
...project,
health: 100,
createdAt: new Date(),
mode: 'open',
defaultStickiness: 'default',
archivedAt: null,
};
this.projects.push(newProj);
return newProj;
}
async create(project) {
return this.createInternal(project);
}
async delete(key) {
this.projects.splice(this.projects.findIndex((project) => project.id === key), 1);
}
async deleteAll() {
this.projects = [];
}
async deleteEnvironmentForProject(id, environment) {
const environments = this.projectEnvironment.get(id);
if (environments) {
environments.delete(environment);
this.projectEnvironment.set(id, environments);
}
}
destroy() { }
async count() {
return this.projects.filter((project) => project.archivedAt === null)
.length;
}
async get(key) {
const project = this.projects.find((p) => p.id === key);
if (project) {
return project;
}
throw new notfound_error_1.default(`Could not find project with id: ${key}`);
}
async getAll() {
return this.projects
.filter((project) => project.archivedAt === null)
.map((p) => p);
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async getMembersCountByProject(projectId) {
return Promise.resolve(0);
}
async exists(key) {
return this.projects.some((project) => project.id === key);
}
async hasProject(id) {
return this.exists(id);
}
async hasActiveProject(id) {
return this.projects.some((project) => project.id === id && project.archivedAt === null);
}
async importProjects(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
projects,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
environments) {
return projects.map((project) => this.createInternal(project));
}
async update(update) {
await this.delete(update.id);
this.createInternal(update);
}
async updateHealth(healthUpdate) {
this.projects.find((project) => project.id === healthUpdate.id).health = healthUpdate.health;
}
addEnvironmentToProjects(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
environment,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
projects) {
throw new Error('Method not implemented.');
}
async getMembersCountByProjectAfterDate(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
projectId,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
date) {
return 0;
}
updateDefaultStrategy(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
projectId,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
environment,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
strategy) {
throw new Error('Method not implemented.');
}
getDefaultStrategy(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
projectId,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
environment) {
throw new Error('Method not implemented.');
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
isFeatureLimitReached(id) {
return Promise.resolve(false);
}
getProjectModeCounts() {
return Promise.resolve([]);
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
updateProjectEnterpriseSettings(update) {
throw new Error('Method not implemented.');
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
getApplicationsByProject(searchParams) {
throw new Error('Method not implemented.');
}
async archive(id) {
this.projects = this.projects.map((project) => project.id === id
? { ...project, archivedAt: new Date() }
: project);
}
async revive(id) {
this.projects = this.projects.map((project) => project.id === id ? { ...project, archivedAt: null } : project);
}
}
exports.default = FakeProjectStore;
//# sourceMappingURL=fake-project-store.js.map