migrator_test.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package teststore
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/lithammer/shortuuid/v4"
  6. "github.com/stretchr/testify/require"
  7. "github.com/usememos/memos/store"
  8. )
  9. func TestMigrateResourceInternalPath(t *testing.T) {
  10. ctx := context.Background()
  11. ts := NewTestingStore(ctx, t)
  12. user, err := createTestingHostUser(ctx, ts)
  13. require.NoError(t, err)
  14. testCases := []map[string]string{
  15. {
  16. ts.Profile.Data + "/assets/test.jpg": "assets/test.jpg",
  17. },
  18. {
  19. ts.Profile.Data + `\assets\test.jpg`: "assets/test.jpg",
  20. },
  21. {
  22. "/unhandled/path/test.jpg": "/unhandled/path/test.jpg",
  23. },
  24. {
  25. `C:\unhandled\path\assets\test.jpg`: `C:\unhandled\path\assets\test.jpg`,
  26. },
  27. }
  28. for _, testCase := range testCases {
  29. for input, expectedOutput := range testCase {
  30. resourceCreate := &store.Resource{
  31. ResourceName: shortuuid.New(),
  32. CreatorID: user.ID,
  33. InternalPath: input,
  34. }
  35. createdResource, err := ts.CreateResource(ctx, resourceCreate)
  36. require.NoError(t, err)
  37. err = ts.MigrateResourceInternalPath(ctx)
  38. require.NoError(t, err)
  39. findResource := &store.FindResource{
  40. ID: &createdResource.ID,
  41. }
  42. resource, err := ts.GetResource(ctx, findResource)
  43. require.NoError(t, err)
  44. require.Equal(t, expectedOutput, resource.InternalPath)
  45. }
  46. }
  47. ts.Close()
  48. }