Skip to content

Commit c5265b7

Browse files
committed
Fixed sort order for user projection. Moved run configurations to .run
1 parent f5ab02d commit c5265b7

File tree

7 files changed

+46
-6
lines changed

7 files changed

+46
-6
lines changed

.gitignore

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
.idea/*
2-
!.idea/runConfigurations/
1+
.idea/
32
*_gen.go
43
statik/

.idea/runConfigurations/All_Unit_Tests.xml .run/All Unit Tests.run.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
<configuration default="false" name="All Unit Tests" type="GoTestRunConfiguration" factoryName="Go Test">
33
<module name="goauth2" />
44
<working_directory value="$PROJECT_DIR$" />
5-
<framework value="gotest" />
65
<kind value="DIRECTORY" />
76
<package value="github.com/inklabs/goauth2" />
87
<directory value="$PROJECT_DIR$/" />
98
<filePath value="$PROJECT_DIR$/" />
9+
<framework value="gotest" />
1010
<method v="2" />
1111
</configuration>
1212
</component>

.run/Run GoAuth2.run.xml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="Run GoAuth2" type="GoApplicationRunConfiguration" factoryName="Go Application">
3+
<module name="goauth2" />
4+
<working_directory value="$PROJECT_DIR$" />
5+
<parameters value="-port 8080" />
6+
<kind value="PACKAGE" />
7+
<package value="github.com/inklabs/goauth2/cmd/goauth2" />
8+
<directory value="$PROJECT_DIR$" />
9+
<filePath value="$PROJECT_DIR$/cmd/goauth2/main.go" />
10+
<method v="2" />
11+
</configuration>
12+
</component>

projection/users.go

+4
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ func (a *Users) GetAll() []*user {
6868
a.mu.RUnlock()
6969

7070
sort.SliceStable(users, func(i, j int) bool {
71+
if users[i].CreateTimestamp == users[j].CreateTimestamp {
72+
return users[i].UserID < users[j].UserID
73+
}
74+
7175
return users[i].CreateTimestamp >= users[j].CreateTimestamp
7276
})
7377

projection/users_test.go

+26-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func TestUsers_Accept(t *testing.T) {
2525
issueTime := time.Date(2020, 05, 11, 8, 0, 0, 0, time.UTC)
2626
issueTime2 := time.Date(2020, 05, 12, 8, 0, 0, 0, time.UTC)
2727

28-
t.Run("can get all users ordered by creation timestamp", func(t *testing.T) {
28+
t.Run("can get all users ordered by descending creation timestamp", func(t *testing.T) {
2929
// Given
3030
users := projection.NewUsers()
3131
record1 := rangedbtest.DummyRecordFromEvent(&goauth2.UserWasOnBoarded{
@@ -53,6 +53,31 @@ func TestUsers_Accept(t *testing.T) {
5353
assert.Equal(t, uint64(issueTime2.Unix()), actualUsers[0].CreateTimestamp)
5454
})
5555

56+
t.Run("can get all users ordered by creation timestamp, then by ascending userID", func(t *testing.T) {
57+
// Given
58+
users := projection.NewUsers()
59+
record1 := rangedbtest.DummyRecordFromEvent(&goauth2.UserWasOnBoarded{
60+
UserID: userID,
61+
Username: username,
62+
PasswordHash: passwordHash,
63+
})
64+
record2 := rangedbtest.DummyRecordFromEvent(&goauth2.UserWasOnBoarded{
65+
UserID: userID2,
66+
Username: username2,
67+
PasswordHash: passwordHash,
68+
})
69+
users.Accept(record2)
70+
users.Accept(record1)
71+
72+
// When
73+
actualUsers := users.GetAll()
74+
75+
// Then
76+
assert.Len(t, actualUsers, 2)
77+
assert.Equal(t, userID2, actualUsers[0].UserID)
78+
assert.Equal(t, username2, actualUsers[0].Username)
79+
})
80+
5681
t.Run("includes admin flag", func(t *testing.T) {
5782
// Given
5883
users := projection.NewUsers()

web/templates/add-user.gohtml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<div class="form-vertical">
1818
<div class="form-group">
1919
<label class="form-label">Username
20-
<input name="username" type="text" class="form-input" value="{{.Username}}">
20+
<input name="username" type="text" class="form-input" value="{{.Username}}" autofocus>
2121
</label>
2222
</div>
2323
<div class="form-group">

web/templates/login.gohtml

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<div class="form-vertical">
2121
<div class="form-group">
2222
<label class="form-label">Username
23-
<input name="username" type="text" class="form-input">
23+
<input name="username" type="text" class="form-input" autofocus>
2424
</label>
2525
</div>
2626
<div class="form-group">

0 commit comments

Comments
 (0)