Two ways I normally resort to in these cases, assuming in your context you do not have a week to wait, is Clock the server/ database after the commit so it believes it is a week or longer after the event, to see the expire has occured.
The other option involves the basis of an equivialance class and assumes, in this context, the software on the server is set as a variable and can be clocked down to a shorter time frame - then executing the test to the shorter time frame selected.
Both of these contexts are based on access to technical aspects of the systems under test you may not have.
Of course other questions in this spring to mind for me, such as is it really desired behaviour to remove it completly or is it just deactivated?
Yeah, ideally you should do a little white-box testing in here; meaning you need to know a little about when the program checks all the cards. If it checks every day at midnight, change the time of the server up to the end of the fifth day. After it rolls over without deleting (to make sure they did the computation right) move up to the end of the sixth day and test that also. If you don't have access to the server to change the date, you will just have to spend a week doing this, which you should do at least once anyway just for a real test.