Viewing File: /usr/local/cpanel/base/frontend/jupiter/site-monitor/services/sitesCache.spec.js
/*
* site-monitor/services/sitesCache.spec.js Copyright 2021 cPanel, L.L.C.
* All rights reserved.
* copyright@cpanel.net http://cpanel.net
* This code is subject to the cPanel license. Unauthorized copying is prohibited
*/
/* global define, PAGE */
define([
"app/models/site",
"angular",
"cjt/core",
"cjt/util/test",
"ngMocks",
"app/services/sitesCache",
],
function(Site) {
"use strict";
let service;
beforeEach(function() {
module("cpanel.siteMonitor.sitesCacheService");
inject(function($injector) {
service = $injector.get("sitesCache");
});
});
describe("add", function() {
it("should add a single site to the cache", function() {
let site_to_add = {domain: "a.tld", docroot: "public_html/a", type: "main_domain"};
let returned_site = service.add(site_to_add);
expect(returned_site).toEqual(new Site(site_to_add));
let site_from_cache = service.get()[0];
expect(site_from_cache).toEqual(new Site(site_to_add));
});
it("should not add a site to the cache if the site already exists", function() {
let site_to_add = {domain: "a.tld", docroot: "public_html/a", type: "main_domain"};
let returned_site = service.add(site_to_add);
expect(returned_site).toEqual(new Site(site_to_add));
returned_site = service.add(site_to_add);
expect(returned_site).toEqual(new Site(site_to_add));
expect(service.get().length).toEqual(1);
});
});
describe("clear", function() {
it("should remove all sites from the cache", function() {
let site_to_add = {domain: "a.tld", docroot: "public_html/a", type: "main_domain"};
let returned_site = service.add(site_to_add);
expect(returned_site).toEqual(new Site(site_to_add));
site_to_add = {domain: "b.xyz", docroot: "public_html/b", type: "main_domain"};
returned_site = service.add(site_to_add);
expect(returned_site).toEqual(new Site(site_to_add));
service.clear();
let got_sites_list = service.get();
expect(got_sites_list.length).toEqual(0);
});
});
describe("remove", function() {
it("should return true and remove the correct site from the cache", function() {
let site_to_add = {domain: "a.tld", docroot: "public_html/a", type: "main_domain"};
let site_to_check = site_to_add;
let returned_site = service.add(site_to_add);
expect(returned_site).toEqual(new Site(site_to_add));
site_to_add = {domain: "b.xyz", docroot: "public_html/b", type: "main_domain"};
returned_site = service.add(site_to_add);
expect(returned_site).toEqual(new Site(site_to_add));
expect(service.remove("b.xyz")).toBe(true);
expect(service.get().length).toBe(1);
let remaining_site = service.get()[0];
expect(remaining_site).toEqual(new Site(site_to_check));
});
it("should return false and not remove sites if the site does not exist", function() {
let site_to_add = {domain: "a.tld", docroot: "public_html/a", type: "main_domain"};
let returned_site = service.add(site_to_add);
expect(returned_site).toEqual(new Site(site_to_add));
site_to_add = {domain: "b.xyz", docroot: "public_html/b", type: "main_domain"};
returned_site = service.add(site_to_add);
expect(returned_site).toEqual(new Site(site_to_add));
expect(service.remove("invalid")).toBe(false);
expect(service.get().length).toBe(2);
});
it("should return false when the cache is empty", function() {
expect(service.remove("a.tld")).toBe(false);
expect(service.get().length).toBe(0);
});
});
describe("get", function() {
it("should return a list of Site objects", function() {
let site_a = {domain: "a.tld", docroot: "public_html/a", type: "main_domain"};
let returned_site = service.add(site_a);
site_a = new Site(site_a);
expect(returned_site).toEqual(site_a);
let site_b = {domain: "b.xyz", docroot: "public_html/b", type: "main_domain"};
returned_site = service.add(site_b);
site_b = new Site(site_b);
expect(returned_site).toEqual(site_b);
expect(service.get()).toEqual([site_a, site_b]);
});
it("should return an empty list if the cache is empty", function() {
expect(service.get()).toEqual([]);
});
});
describe("findByDomainName", function() {
it("should return the correct Site object", function() {
let site_to_add = {domain: "a.tld", docroot: "public_html/a", type: "main_domain"};
let returned_site = service.add(site_to_add);
expect(returned_site).toEqual(new Site(site_to_add));
let site_to_check = {domain: "b.xyz", docroot: "public_html/b", type: "main_domain"};
returned_site = service.add(site_to_check);
site_to_check = new Site(site_to_check);
expect(returned_site).toEqual(site_to_check);
expect(service.findByDomainName("b.xyz")).toEqual(site_to_check);
expect(service.findByDomainName("invalid")).not.toBeDefined();
});
});
});
Back to Directory
File Manager