mirror of
https://github.com/gravitational/teleport.git
synced 2026-10-11 22:49:54 +00:00
* Auto detect fixture usage in tests * Changes to runner for enabling e e2e tests * Only detect fixtures in test/UI/debug modes * Make scanning more resilient - require test.use, allow for multiple lines * Fix e2e/runner CI generate check * Make scanning context aware to match with running individual tests * Log enabled fixtures on one line * Rename gen-fixtures, move go gen to main.go * Return an error if no tests are matched * gen-ts-fixtures: Use text/template instead of manually writing to buf * Ignore generated fixtures.ts instead of formatting it * Fix pnpm lockfile patching for when e/e2e is missing * Simplify test running mode detection for scanning fixtures * go generate * Remove codegen from test run logic * Handle run.sh receiving e/e2e directly * Allow for fixtures to be enabled manually through flags * Fix logging of enabled fixtures to include the ones set by flags * Handle inline comments * Update cmd in generated file * Only pnpm install if teleport/connect needs building * Error if UI mode is invoked with connect tests * Handle errors better when checking if a binary exists * Add info to the README about manually enabling fixtures * Debug -> Warn * Add test files to --ui * Handle comments in strings properly * Remove connect TSH from pnpm install logic * Ignore flags in run.sh * Handle double quotes just in case * Add line number back * Handle commented out imports * Always include host.docker.internal in the certs * Only scan fixtures in test mode/when test files are specified * Make e2e/run.sh work with absolute paths to e/ tests * Scan fixtures when running tests but not in UI mode --------- Co-authored-by: Maja Cieślak <[email protected]>
76 lines
1.5 KiB
Go
76 lines
1.5 KiB
Go
/**
|
|
* Teleport
|
|
* Copyright (C) 2026 Gravitational, Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
package fixtures
|
|
|
|
import "flag"
|
|
|
|
var (
|
|
SSHNode = register("ssh-node")
|
|
Connect = register("connect")
|
|
)
|
|
|
|
type Fixture struct {
|
|
Name string
|
|
Enabled bool
|
|
}
|
|
|
|
func (f *Fixture) String() string {
|
|
return f.Name
|
|
}
|
|
|
|
var all []*Fixture
|
|
|
|
func register(name string) *Fixture {
|
|
f := &Fixture{Name: name}
|
|
|
|
all = append(all, f)
|
|
|
|
return f
|
|
}
|
|
|
|
func All() []*Fixture {
|
|
return all
|
|
}
|
|
|
|
func Enabled() []*Fixture {
|
|
var enabled []*Fixture
|
|
for _, f := range all {
|
|
if f.Enabled {
|
|
enabled = append(enabled, f)
|
|
}
|
|
}
|
|
return enabled
|
|
}
|
|
|
|
func BindFlags(fs *flag.FlagSet) {
|
|
for _, f := range all {
|
|
fs.BoolVar(&f.Enabled, "with-"+f.Name, false, "enable the "+f.Name+" fixture")
|
|
}
|
|
}
|
|
|
|
func FindByName(name string) *Fixture {
|
|
for _, f := range all {
|
|
if f.Name == name {
|
|
return f
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|