diff --git a/pkg/web/web.go b/pkg/web/web.go index 9537f93..e634225 100644 --- a/pkg/web/web.go +++ b/pkg/web/web.go @@ -1,6 +1,7 @@ package web import ( + "errors" "net/http" "git.keks.cloud/kekskurse/miniauth/pkg/miniauth" @@ -69,7 +70,7 @@ func (w Web) PostLoginPage(c *gin.Context) { err := w.ma.UserLogin(username, password) if err != nil { - c.HTML(http.StatusOK, "login.html", gin.H{"msg": err.Error()}) + c.HTML(http.StatusOK, "login.html", gin.H{"msg": errors.Unwrap(err).Error()}) return } diff --git a/playwright/tests/example.spec.js b/playwright/tests/example.spec.js index 4321070..df4dbc1 100644 --- a/playwright/tests/example.spec.js +++ b/playwright/tests/example.spec.js @@ -74,4 +74,35 @@ test('login page exists', async ({page}) => { test('login faild user not exists', async ({page, browserName}) => { + await page.goto('/web/login'); + await page.getByLabel('Username').fill('kekskurseNO'+browserName); + await page.getByLabel('Password', {name: 'password', exact: true}).fill('7Jw^zNhk!NU3a8qfVp%a*VV!&Won1gD9zVHr&pgNairR5U6^h^$D%TxyJ2qHp%'); + await page.getByRole('button', { name: 'Login' }).click(); + await expect(page.getByText('cant login')).toBeVisible(); + + const text = 'cant execute query'; + const textLocator = page.locator(`text=${text}`); + await expect(textLocator).toHaveCount(0); +}) + +test('login faild passwordwrong', async ({page, browserName}) => { + + await page.goto('/web/login'); + await page.getByLabel('Username').fill('kekskurse'+browserName); + await page.getByLabel('Password', {name: 'password', exact: true}).fill('NO7Jw^zNhk!NU3a8qfVp%a*VV!&Won1gD9zVHr&pgNairR5U6^h^$D%TxyJ2qHp%'); + await page.getByRole('button', { name: 'Login' }).click(); + await expect(page.getByText('cant login')).toBeVisible(); + + const text = 'cant execute query'; + const textLocator = page.locator(`text=${text}`); + await expect(textLocator).toHaveCount(0); +}) +test('login success', async ({page, browserName}) => { + + await page.goto('/web/login'); + await page.getByLabel('Username').fill('kekskurse'+browserName); + await page.getByLabel('Password', {name: 'password', exact: true}).fill('7Jw^zNhk!NU3a8qfVp%a*VV!&Won1gD9zVHr&pgNairR5U6^h^$D%TxyJ2qHp%'); + await page.getByRole('button', { name: 'Login' }).click(); + await expect(page.getByText('Login ok!')).toBeVisible(); + })