* list account and create account
* deleteaccount (wip)
* remove old accounts code
* fix from merge
* remove serve method from makefile
* ListAccounts, password hash on domain
* make lint
* more permissive assertion
* rename test
* update account
* Authorization
* updated api calls
* apis, pointers, auth
* swagger
* stylecheck
* domain validation
* tests
* swagger
* error handling
* fix system account changes
* Cleanup database interface
* test cleanup
* fixed nil references
* feat: Add logout endpoint to auth routes
* feat: Add logoutHandler for stateless JWT token logout
* fixed some bug catched in tests
* auth/account patch
* prettier
* remove test logs
* fixed incorrect number of parameters
* fixed swagger docs
* enable swagger in dev environment
* errors.Wrap -> fmt.Errorf
* test: Add comprehensive test cases for accounts API handlers
* fix: Resolve test failures in accounts_test.go
* test: Add tests for duplicate username handling in account creation and update
* feat: Add username uniqueness checks for account creation and update
refactor: Improve username existence checks in SQLite account methods
* linted
* test: Add comprehensive tests for auth domain token and credential validation
* test: Add comprehensive test cases for auth domain token creation and validation
* test: Add comprehensive error handling test cases for accounts domain
* refactor: Remove `SaveAccountSettings` method from database implementations
* test: Add test cases for password update functionality
* test(e2e): auth login
* lint
* send regular context to domain
* fixed e2e auth tests
* test: Add auth_test.go for end-to-end authentication testing
* feat: Add comprehensive authentication tests using Playwright and testcontainers
* fix: Handle multiple return values in Playwright test methods
* error message
* e2e playwrigth tests
* ci: setup playwrigth
* refactor: Update Playwright tests to use locator-based API
* refactor: Remove unnecessary alias for playwright-go expect import
* refactor: Replace deprecated expect package with WaitFor() method in Playwright tests
* fix: Resolve linting issues in e2e Playwright tests
* remove npm ci from e2e ci
* make playwright available in path
* typo
* re enabled ci
* base e2e accounts test
* more account e2e
* feat: Add HTML test reporter with screenshots and detailed results
* feat: Embed screenshots as base64 in HTML test report
* refactor: Remove GitHub step summary functionality from test helper
* refactor: Make reporter global to share test results across test helpers
* refactor: Add HandleSuccess method to TestHelper for consistent test result reporting
* feat: Add descriptive messages to all test assertions in TestHelper
* test: Add descriptive messages to assertions in accounts_test.go
* test: Add descriptive error messages to assertions in accounts_test.go
* feat: Add descriptive messages to assertions in accounts_test.go
* refactor: Update assertion functions to receive *testing.T as first argument
* refactor: Update accounts_test.go assertions to pass *testing.T argument
* refactor: Update accounts_test.go assertions to use *testing.T argument
* refactor: Update `accounts_test.go` to use `*testing.T` argument in `Require()` calls
* refactor: Update `th.Require()` calls with `t *testing.T` argument in accounts_test.go
* assert helper
* refactor: Refactor `False` test helper to use `Assert` function consistently
* refactor: Refactor `Equal` test helper to use `Assert` function
* refactor: Simplify Error test helper to use Assert function
* refactor: Refactor `NoError` to use `Assert` function for consistent error handling
* typo
* refactor: Differentiate between test cases and assertions in reporter
* refactor: Simplify AddResult method signature and use error message for assertion
* refactor: Simplify test report with focused failure details and screenshots
* refactor: Ensure assertions are always called in PlaywrightRequire helper methods
* refactor: Update test error messages to be action-oriented
* refactor: Update error messages to be more action-oriented in accounts_test.go
* refactor: Update error messages to be action-oriented in accounts_test.go
* refactor: Improve error messages in auth_test.go for better test readability
* refactor: Improve screenshot handling and test result reporting in Playwright test helper
* fix: Improve test reporting with detailed error messages and logging
* refactor: Remove unused runningInCI field from TestHelper struct
* fix: Improve message formatting in Assert method for better reporting
* assertions
* test: Add `Require()` calls to 007 test for improved error handling
* refactor: Update test reporter to include error details and improve HTML rendering
* fix: Properly escape and render base64 screenshot in HTML report
* fix: Correct base64 screenshot rendering in test reporter
* fixed tests + html report
* feat: Add artifact upload for e2e test report
* make lint
* chore: use correct version in user agent
* ci: run e2e after other checks
* chore: remove pre-commit
* sqlite migrate script
* create time just when bookmark added and modified update if change happen
* show added and modified time in footer instead of header
* add bun.lockb that missing
* add migrate for postgres
* add pg support of created time
* change modifed to modifed_at and create to created_at in sqlite
* change modifed to modifed_at and create to created_at in postgre
* add created_at to mariadb
* fix migration file names
* better variable name and more clear code for add modified time if created and modified is not in same day
* add unittest
* add unittest to sure filters work as expected
* index for created_at and modified_at
* build new styles.css
* update swagger documents
* make styles
* change Created and Modified to CreatedAt and ModifiedAt
* fix missing Modified
* fix typo
* missing Modified
* fix typo
* make swagger
* run tests parallel
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* remove t.Parallel()
* remove dayjs dependency and combine two function
* better unittest name
* fix typo
* diffrnt footer style for login and content page
* use class instead of id
* back parallel
* change duplicate url
* remvoe run Parallel
* make styles
---------
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* return corrent path in windows with usiing path lib
* ci: run tests in windows and macos too
* avoid testing mysql/psql in windows and macos
* windows & macos matrix
* disable gotestfmt
* replace which in shell script
* handle error in test db removal
* fix expected path baseed on platform
* add leading seprator
* proper temporary storage dir and db cleanup
* fix failed to create destination dir file does not exist in windows
* move temp to /tmp
* update temp folder
* fix config tests in windows
* apply patch for db
* revert temp dir creation.
* unify account db tests pach
* remove TmpDir for sqlite tests
* try to force CGO disable with enviroment variable
* Remove unneeded log
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* remove unneeded comment
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* fix file path for download images
* change way to create temp directory
* use diffrent file name for each test
* fix typo
* fix absolute path in successful download image
* correct filename with png
* change test to download image from internet instead of local machine
* remvoe unneeded import
* remove os.RemoveAll(.env)
* unify variable names in unit test
* return CGO_ENABLED=0
* test other way to set enviroment variable
* try to set enviroment variable sepratly in macos and windows
* set enviroment variable before run commands in windows
* fix windows test name
* combine two workflow for windows and macos again
* fix typo
* remove env
* change env path
* cleanup unneeded env
* general CGO_ENABLED environ
* use absolute path to run fileserver instead of relative
* serve file test from internet shiori repository
* check file existance after download and unify varibale name from temp to tmpDir
* remove unneeded log
---------
Co-authored-by: Felipe M <me@fmartingr.com>
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* migrate bookmark content route to new http server
* new archive page
* remove unused go generate comment
* database mock
* utils cleanup
* unused var
* domains refactor and tests
* fixed secret key type
* redirect to login on ui errors
* fixed archive folder with storage domain
* webroot documentation
* some bookmark route tests
* fixed error in bookmark domain for non existant bookmarks
* centralice errors
* add coverage data to unittests
* added tests, refactor storage to use afero
* removed mock to avoid increasing complexity
* using deps to copy files around
* remove config usage (to deps)
* remove handler-ui file
* fix(sqlite): avoid using dash in fts5 queries
* test(db): get bookmarks and count with dash in keyword
* test(db): common and ad-hoc sqlite test case
After a first bookmark save, all subsequent ones fail because the update
query does not include an identifier and the update is done on all rows.
Introduced by 05fee53bd0
* chore: updated go-migrate dependencies
* fix: specify if we're saving bookmarks expecting a creation
up until now the SaveBookmarks method was doing some "magic" to do
"upserts" on the databases, but consistency between engines was scarce
and not knowing if we were expecting saving a new bookmark or updating
an existing one was leading to errors and inconsistencies in logic all
around the place. Now we need to specify a creation boolean when
saving and a differnt query will be make (INSERT vs UPDATE).
* fix(api): using incorrect bookmark for content downlaod
* test(db): added test pipeline for databases
Added functions that will share logic among the engines and will be
called on fresh databases on each test run
* dev: added basic docker-compose for development
* chore: uncommented tests
* ci(test): added mysql service
* typo
* test(mysql): select database after reset
* fix(mysql): ignore empty row errors when parsing tags
* fix(mysql): handle insert errors
* chore: added mysql variables to compose
* ci: explicit mysql service port exposed