/* Copyright © 2023 Philipp Wolfer This file is part of Scotty. Scotty is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Scotty 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 General Public License for more details. You should have received a copy of the GNU General Public License along with Scotty. If not, see . */ package storage_test import ( "testing" "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uploadedlobster.com/scotty/storage" "golang.org/x/oauth2" ) func TestTimestampUpdate(t *testing.T) { db, err := storage.New(":memory:") require.NoError(t, err) source := "maloja" target := "funkwhale" entity := "loves" timestamp, err := db.GetImportTimestamp(source, target, entity) require.NoError(t, err) assert.Equal(t, time.Time{}, timestamp) newTimestamp := time.Now() err = db.SetImportTimestamp(source, target, entity, newTimestamp) require.NoError(t, err) timestamp, err = db.GetImportTimestamp(source, target, entity) require.NoError(t, err) assert.Equal(t, newTimestamp.Unix(), timestamp.Unix()) } func TestOAuth2TokenUpdate(t *testing.T) { db, err := storage.New(":memory:") require.NoError(t, err) service := "spotify" token, err := db.GetOAuth2Token(service) require.NoError(t, err) assert.Equal(t, "", token.AccessToken) newToken := oauth2.Token{ AccessToken: "thetoken", } err = db.SetOAuth2Token(service, &newToken) require.NoError(t, err) token, err = db.GetOAuth2Token(service) require.NoError(t, err) assert.Equal(t, newToken.AccessToken, token.AccessToken) }