Compare commits

..

2 Commits

Author SHA1 Message Date
RoyUP9
bf68689212 renamed standalone route to config route (#586) 2022-01-04 18:46:03 +02:00
Adam Kol
dbc18b9648 Cypress: first-time-using cypress files + new GuiPort test on the UI (#584) 2022-01-04 18:02:02 +02:00
9 changed files with 45 additions and 6 deletions

9
.gitignore vendored
View File

@@ -35,3 +35,12 @@ pprof/*
# Nohup Files - https://man7.org/linux/man-pages/man1/nohup.1p.html
nohup.*
# Cypress tests
cypress.env.json
*/cypress/downloads
*/cypress/fixtures
*/cypress/plugins
*/cypress/screenshots
*/cypress/videos
*/cypress/support

View File

@@ -0,0 +1,8 @@
{
"watchForFileChanges":false,
"viewportWidth": 1920,
"viewportHeight": 1080,
"video": false,
"screenshotOnRunFailure": false,
"testFiles": ["tests/GuiPort.js"]
}

View File

@@ -0,0 +1,8 @@
it('check', function () {
cy.visit(`http://localhost:${Cypress.env('port')}/`)
cy.get('.header').should('be.visible')
cy.get('.TrafficPageHeader').should('be.visible')
cy.get('.TrafficPage-ListContainer').should('be.visible')
cy.get('.TrafficPage-Container').should('be.visible')
})

View File

@@ -138,6 +138,8 @@ func TestTapGuiPort(t *testing.T) {
t.Errorf("failed to start tap pods on time, err: %v", err)
return
}
runCypressTests(t, fmt.Sprintf("npx cypress run --spec \"cypress/integration/tests/GuiPort.js\" --env port=%d", guiPort))
})
}
}

View File

@@ -13,6 +13,7 @@ import (
"strings"
"sync"
"syscall"
"testing"
"time"
"github.com/gorilla/websocket"
@@ -143,6 +144,17 @@ func getDefaultViewCommandArgs() []string {
return append([]string{viewCommand}, defaultCmdArgs...)
}
func runCypressTests(t *testing.T, cypressRunCmd string) {
cypressCmd := exec.Command("bash", "-c", cypressRunCmd)
t.Logf("running command: %v", cypressCmd.String())
out, err := cypressCmd.Output()
if err != nil {
t.Errorf("%s", out)
return
}
t.Logf("%s", out)
}
func retriesExecute(retriesCount int, executeFunc func() error) error {
var lastError interface{}

View File

@@ -261,7 +261,7 @@ func hostApi(socketHarOutputChannel chan<- *tapApi.OutputChannelItem) {
api.WebSocketRoutes(app, &eventHandlers, startTime)
if config.Config.StandaloneMode {
routes.StandaloneRoutes(app)
routes.ConfigRoutes(app)
}
routes.QueryRoutes(app)

View File

@@ -16,12 +16,12 @@ import (
"time"
)
var globalTapConfig *models.StandaloneTapConfig
var globalTapConfig *models.TapConfig
var cancelTapperSyncer context.CancelFunc
var kubernetesProvider *kubernetes.Provider
func PostTapConfig(c *gin.Context) {
tapConfig := &models.StandaloneTapConfig{}
tapConfig := &models.TapConfig{}
if err := c.Bind(tapConfig); err != nil {
c.JSON(http.StatusBadRequest, err)

View File

@@ -16,7 +16,7 @@ func GetEntry(r *tapApi.MizuEntry, v tapApi.DataUnmarshaler) error {
return v.UnmarshalData(r)
}
type StandaloneTapConfig struct {
type TapConfig struct {
TappedNamespaces map[string]bool `json:"tappedNamespaces"`
}

View File

@@ -5,8 +5,8 @@ import (
"mizuserver/pkg/controllers"
)
func StandaloneRoutes(ginApp *gin.Engine) {
routeGroup := ginApp.Group("/standalone")
func ConfigRoutes(ginApp *gin.Engine) {
routeGroup := ginApp.Group("/config")
routeGroup.POST("/tapConfig", controllers.PostTapConfig)
routeGroup.GET("/tapConfig", controllers.GetTapConfig)