feat: enable/disable notifications about internals/barbarians
This commit is contained in:
parent
09eb88ed50
commit
4b64d0f283
|
@ -365,7 +365,7 @@ func canSendEnnoblementNotificationTypeLoss(g domain.Group, e twhelp.Ennoblement
|
|||
return false
|
||||
}
|
||||
|
||||
if !g.Internals && isInternal(e, monitors) {
|
||||
if isInternal(e, monitors) {
|
||||
return false
|
||||
}
|
||||
|
||||
|
@ -397,7 +397,7 @@ func isGain(e twhelp.Ennoblement, monitors []domain.Monitor) bool {
|
|||
break
|
||||
}
|
||||
}
|
||||
return n && e.NewOwner.Player.Tribe.Tribe.ID != e.OldOwner.Player.Tribe.Tribe.ID
|
||||
return n && e.NewOwner.Player.ID != e.OldOwner.Player.ID
|
||||
}
|
||||
|
||||
func isLoss(e twhelp.Ennoblement, monitors []domain.Monitor) bool {
|
||||
|
@ -408,7 +408,7 @@ func isLoss(e twhelp.Ennoblement, monitors []domain.Monitor) bool {
|
|||
break
|
||||
}
|
||||
}
|
||||
return o && e.NewOwner.Player.Tribe.Tribe.ID != e.OldOwner.Player.Tribe.Tribe.ID
|
||||
return o && e.NewOwner.Player.ID != e.OldOwner.Player.ID
|
||||
}
|
||||
|
||||
func ennoblementToDomainModel(e twhelp.Ennoblement) domain.Ennoblement {
|
||||
|
|
|
@ -310,6 +310,23 @@ func TestMonitor_Execute(t *testing.T) {
|
|||
ProfileURL: uuid.NewString(),
|
||||
},
|
||||
},
|
||||
"de:de200": {
|
||||
{
|
||||
ID: 300,
|
||||
FullName: uuid.NewString(),
|
||||
ProfileURL: uuid.NewString(),
|
||||
},
|
||||
{
|
||||
ID: 301,
|
||||
FullName: uuid.NewString(),
|
||||
ProfileURL: uuid.NewString(),
|
||||
},
|
||||
{
|
||||
ID: 302,
|
||||
FullName: uuid.NewString(),
|
||||
ProfileURL: uuid.NewString(),
|
||||
},
|
||||
},
|
||||
}
|
||||
tribes := map[string][]twhelp.TribeMeta{
|
||||
"pl:pl181": {
|
||||
|
@ -354,6 +371,20 @@ func TestMonitor_Execute(t *testing.T) {
|
|||
ProfileURL: uuid.NewString(),
|
||||
},
|
||||
},
|
||||
"de:de200": {
|
||||
{
|
||||
ID: 300,
|
||||
Name: uuid.NewString(),
|
||||
Tag: uuid.NewString(),
|
||||
ProfileURL: uuid.NewString(),
|
||||
},
|
||||
{
|
||||
ID: 301,
|
||||
Name: uuid.NewString(),
|
||||
Tag: uuid.NewString(),
|
||||
ProfileURL: uuid.NewString(),
|
||||
},
|
||||
},
|
||||
}
|
||||
players := map[string][]twhelp.PlayerMeta{
|
||||
"pl:pl181": {
|
||||
|
@ -428,6 +459,35 @@ func TestMonitor_Execute(t *testing.T) {
|
|||
},
|
||||
},
|
||||
},
|
||||
"de:de200": {
|
||||
{
|
||||
ID: 300,
|
||||
Name: uuid.NewString(),
|
||||
ProfileURL: uuid.NewString(),
|
||||
Tribe: twhelp.NullTribeMeta{
|
||||
Tribe: tribes["de:de200"][0],
|
||||
Valid: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
ID: 301,
|
||||
Name: uuid.NewString(),
|
||||
ProfileURL: uuid.NewString(),
|
||||
Tribe: twhelp.NullTribeMeta{
|
||||
Tribe: tribes["de:de200"][0],
|
||||
Valid: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
ID: 302,
|
||||
Name: uuid.NewString(),
|
||||
ProfileURL: uuid.NewString(),
|
||||
Tribe: twhelp.NullTribeMeta{
|
||||
Tribe: tribes["de:de200"][1],
|
||||
Valid: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
ennoblements := map[string][]twhelp.Ennoblement{
|
||||
"pl:pl181": {
|
||||
|
@ -458,7 +518,7 @@ func TestMonitor_Execute(t *testing.T) {
|
|||
CreatedAt: time.Now().Add(-4 * time.Minute),
|
||||
},
|
||||
{
|
||||
ID: 3, // internal conquer, should be skipped
|
||||
ID: 3, // internal, should be skipped (internals disabled)
|
||||
Village: villages["pl:pl181"][1],
|
||||
NewOwner: twhelp.NullPlayerMeta{
|
||||
Player: players["pl:pl181"][0],
|
||||
|
@ -471,7 +531,7 @@ func TestMonitor_Execute(t *testing.T) {
|
|||
CreatedAt: time.Now().Add(-3 * time.Minute),
|
||||
},
|
||||
{
|
||||
ID: 4, // barbarian
|
||||
ID: 4, // barbarian, shouldn't be skipped (barbarians enabled)
|
||||
Village: villages["pl:pl181"][2],
|
||||
NewOwner: twhelp.NullPlayerMeta{
|
||||
Player: players["pl:pl181"][0],
|
||||
|
@ -554,6 +614,44 @@ func TestMonitor_Execute(t *testing.T) {
|
|||
CreatedAt: time.Now().Add(-5 * time.Minute),
|
||||
},
|
||||
},
|
||||
"de:de200": {
|
||||
{
|
||||
ID: 300, // barbarian, should be skipped (barbarians disabled)
|
||||
Village: villages["de:de200"][0],
|
||||
NewOwner: twhelp.NullPlayerMeta{
|
||||
Player: players["de:de200"][0],
|
||||
Valid: true,
|
||||
},
|
||||
OldOwner: twhelp.NullPlayerMeta{},
|
||||
CreatedAt: time.Now().Add(-5 * time.Minute),
|
||||
},
|
||||
{
|
||||
ID: 301, // internal, shouldn't be skipped (internals enabled)
|
||||
Village: villages["de:de200"][1],
|
||||
NewOwner: twhelp.NullPlayerMeta{
|
||||
Player: players["de:de200"][0],
|
||||
Valid: true,
|
||||
},
|
||||
OldOwner: twhelp.NullPlayerMeta{
|
||||
Player: players["de:de200"][1],
|
||||
Valid: true,
|
||||
},
|
||||
CreatedAt: time.Now().Add(-5 * time.Minute),
|
||||
},
|
||||
{
|
||||
ID: 302, // internal, shouldn't be skipped (internals enabled)
|
||||
Village: villages["de:de200"][2],
|
||||
NewOwner: twhelp.NullPlayerMeta{
|
||||
Player: players["de:de200"][0],
|
||||
Valid: true,
|
||||
},
|
||||
OldOwner: twhelp.NullPlayerMeta{
|
||||
Player: players["de:de200"][2],
|
||||
Valid: true,
|
||||
},
|
||||
CreatedAt: time.Now().Add(-5 * time.Minute),
|
||||
},
|
||||
},
|
||||
}
|
||||
client.ListEnnoblementsCalls(
|
||||
func(
|
||||
|
@ -613,10 +711,22 @@ func TestMonitor_Execute(t *testing.T) {
|
|||
ServerID: uuid.NewString(),
|
||||
ChannelGains: uuid.NewString(),
|
||||
ChannelLosses: uuid.NewString(),
|
||||
Barbarians: true,
|
||||
ServerKey: "pl180",
|
||||
VersionCode: "pl",
|
||||
CreatedAt: time.Now(),
|
||||
},
|
||||
{
|
||||
ID: uuid.NewString(),
|
||||
ServerID: uuid.NewString(),
|
||||
ChannelGains: uuid.NewString(),
|
||||
ChannelLosses: uuid.NewString(),
|
||||
Barbarians: false,
|
||||
Internals: true,
|
||||
ServerKey: "de200",
|
||||
VersionCode: "de",
|
||||
CreatedAt: time.Now(),
|
||||
},
|
||||
}
|
||||
groupSvc.ListReturns(groups, nil)
|
||||
|
||||
|
@ -659,10 +769,18 @@ func TestMonitor_Execute(t *testing.T) {
|
|||
GroupID: groups[4].ID,
|
||||
CreatedAt: time.Now(),
|
||||
},
|
||||
},
|
||||
groups[5].ID: {
|
||||
{
|
||||
ID: uuid.NewString(),
|
||||
TribeID: tribes["de:200"][0].ID,
|
||||
GroupID: groups[4].ID,
|
||||
TribeID: tribes["de:de200"][0].ID,
|
||||
GroupID: groups[5].ID,
|
||||
CreatedAt: time.Now(),
|
||||
},
|
||||
{
|
||||
ID: uuid.NewString(),
|
||||
TribeID: tribes["de:de200"][1].ID,
|
||||
GroupID: groups[5].ID,
|
||||
CreatedAt: time.Now(),
|
||||
},
|
||||
},
|
||||
|
@ -699,6 +817,18 @@ func TestMonitor_Execute(t *testing.T) {
|
|||
ChannelID: groups[3].ChannelGains,
|
||||
Ennoblement: ennoblementToDomainModel(ennoblements["en:en130"][2]),
|
||||
},
|
||||
{
|
||||
Type: domain.EnnoblementNotificationTypeGain,
|
||||
ServerID: groups[5].ServerID,
|
||||
ChannelID: groups[5].ChannelGains,
|
||||
Ennoblement: ennoblementToDomainModel(ennoblements["de:de200"][1]),
|
||||
},
|
||||
{
|
||||
Type: domain.EnnoblementNotificationTypeGain,
|
||||
ServerID: groups[5].ServerID,
|
||||
ChannelID: groups[5].ChannelGains,
|
||||
Ennoblement: ennoblementToDomainModel(ennoblements["de:de200"][2]),
|
||||
},
|
||||
}
|
||||
assert.Len(t, notifications, len(expectedNotifications))
|
||||
for _, n := range expectedNotifications {
|
||||
|
|
Loading…
Reference in New Issue
Block a user