Path: blob/main/components/gitpod-protocol/src/user-env-var.spec.ts
2498 views
/**1* Copyright (c) 2023 Gitpod GmbH. All rights reserved.2* Licensed under the GNU Affero General Public License (AGPL).3* See License.AGPL.txt in the project root for license information.4*/56import { suite, test } from "@testdeck/mocha";7import * as chai from "chai";89import { UserEnvVar } from "./protocol";1011const expect = chai.expect;1213@suite14class TestUserEnvVar {15public before() {}1617@test public testMatchEnvVarPattern() {18interface Test {19pattern: string;20repository: string;21result: boolean;22}23const tests: Test[] = [24{25pattern: "*/*",26repository: "some/repo",27result: true,28},29{30pattern: "*/*",31repository: "some/nested/repo",32result: false,33},34{35pattern: "*/*",36repository: "some/nested/deeply/repo",37result: false,38},39{40pattern: "some/*",41repository: "some/repo",42result: true,43},44{45pattern: "some/*",46repository: "some/nested/repo",47result: false,48},49{50pattern: "some/*",51repository: "some/nested/deeply/repo",52result: false,53},54{55pattern: "some/**",56repository: "some/repo",57result: true,58},59{60pattern: "some/**",61repository: "some/nested/repo",62result: true,63},64{65pattern: "some/**",66repository: "some/nested/deeply/repo",67result: true,68},69{70pattern: "some/nested/*",71repository: "some/repo",72result: false,73},74{75pattern: "some/nested/*",76repository: "some/nested/repo",77result: true,78},79{80pattern: "some/nested/*",81repository: "some/nested/deeply/repo",82result: false,83},84{85pattern: "some/nested/*",86repository: "another/repo",87result: false,88},89{90pattern: "some/nested/**",91repository: "some/nested/repo",92result: true,93},94{95pattern: "some/nested/**",96repository: "some/nested/deeply/repo",97result: true,98},99{100pattern: "some/nested/**",101repository: "another/repo",102result: false,103},104{105pattern: "*/repo",106repository: "some/repo",107result: true,108},109{110pattern: "*/repo",111repository: "some/nested/repo",112result: false,113},114{115pattern: "*/repo",116repository: "some/nested/deeply/repo",117result: false,118},119{120pattern: "*/repo",121repository: "another/repo",122result: true,123},124{125pattern: "*/*/repo",126repository: "some/repo",127result: false,128},129{130pattern: "*/*/repo",131repository: "some/nested/repo",132result: true,133},134{135pattern: "*/*/repo",136repository: "some/nested/deeply/repo",137result: false,138},139{140pattern: "*/*/repo",141repository: "another/repo",142result: false,143},144];145146for (const test of tests) {147const actual = UserEnvVar.matchEnvVarPattern(test.pattern, test.repository);148expect(actual, `'${test.repository}' % '${test.pattern}' -> ${test.result}`).to.eq(test.result);149}150}151}152153module.exports = new TestUserEnvVar();154155156