File tree Expand file tree Collapse file tree 3 files changed +9
-17
lines changed
Expand file tree Collapse file tree 3 files changed +9
-17
lines changed Original file line number Diff line number Diff line change @@ -15,7 +15,10 @@ private let sessionEntityId = "session-entity-id"
1515
1616extension SessionPersistable where Self: Entity {
1717 public func persist( for req: Request ) throws {
18- try req. assertSession ( ) . data. set ( sessionEntityId, id)
18+ let session = try req. assertSession ( )
19+ if session. data [ sessionEntityId] ? . wrapped != id? . wrapped {
20+ try req. assertSession ( ) . data. set ( sessionEntityId, id)
21+ }
1922 }
2023
2124 public func unpersist( for req: Request ) throws {
Original file line number Diff line number Diff line change @@ -12,10 +12,6 @@ class TokenTests: XCTestCase {
1212 let memory = try ! MemoryDriver ( )
1313 let database = Database ( memory)
1414
15- database. log = { query in
16- print ( query)
17- }
18-
1915 TestToken . database = database
2016 TestUser . database = database
2117
@@ -80,6 +76,7 @@ extension TokenTests {
8076// After that, the cookie can act as a login persister
8177
8278import Sessions
79+ import Cookies
8380
8481extension TokenTests {
8582
@@ -96,7 +93,7 @@ extension TokenTests {
9693 } , name: " persist " )
9794
9895 config. addConfigurable ( middleware: { config in
99- TokenAuthenticationMiddleware ( TestUser . self)
96+ return TokenAuthenticationMiddleware ( TestUser . self)
10097 } , name: " token " )
10198
10299 let drop = try Droplet ( config)
@@ -124,8 +121,9 @@ extension TokenTests {
124121 let req2 = Request ( . get, " name " )
125122 req2. cookies [ " vapor-session " ] = cookie
126123 let res2 = try drop. respond ( to: req2)
124+ XCTAssertEqual ( res2. cookies. array. count, 0 )
127125
128- XCTAssertEqual ( res2. body. bytes? . makeString ( ) , cookie )
126+ XCTAssertEqual ( res2. body. bytes? . makeString ( ) , " Bob " )
129127 }
130128}
131129
Original file line number Diff line number Diff line change @@ -57,13 +57,4 @@ extension Request {
5757
5858// MARK: Sessions
5959
60- extension TestUser : SessionPersistable {
61- public static func fetchPersisted( for req: Request ) throws -> Self ? {
62- // take the cookie and set it as the user's
63- // name for easy verification
64- guard let cookie = req. cookies [ " vapor-session " ] else {
65- return nil
66- }
67- return self . init ( name: cookie)
68- }
69- }
60+ extension TestUser : SessionPersistable { }
You can’t perform that action at this time.
0 commit comments