Если вы идете по маршруту LINQ.js , вы можете сделать это следующим образом:
var aggregatedObject = Enumerable.From(dataArray)
.GroupBy("$.category", null,
function (key, g) {
return {
category: key,
hits: g.Sum("$.hits"),
bytes: g.Sum("$.bytes")
}
})
.ToArray();
var dataArray = [
{ category: "Search Engines", hits: 5, bytes: 50189 },
{ category: "Content Server", hits: 1, bytes: 17308 },
{ category: "Content Server", hits: 1, bytes: 47412 },
{ category: "Search Engines", hits: 1, bytes: 7601 },
{ category: "Business", hits: 1, bytes: 2847 },
{ category: "Content Server", hits: 1, bytes: 24210 },
{ category: "Internet ", hits: 1, bytes: 3690 },
{ category: "Search Engines", hits: 6, bytes: 613036 },
{ category: "Search Engines", hits: 1, bytes: 2858 }
];
var aggregatedObject = Enumerable.From(dataArray)
.GroupBy("$.category", null,
function (key, g) {
return {
category: key,
hits: g.Sum("$.hits"),
bytes: g.Sum("$.bytes")
}
})
.ToArray();
console.log(aggregatedObject);
Кроме того, вы можете найти дополнительную информацию о группе linqjs с помощью суммы
Вы можете проверить, что сообщение было создано и что пользователь был перенаправлен, если параметры верны. И если у вас есть какая-либо проверка в модели Post, будет хорошей идеей проверить недействительные параметры:
RSpec.describe 'PostsController', type: :request do
describe 'POST #create' do
context 'with valid params' do
it 'creates a new post' do
expect { post posts_path, params: { post: valid_attributes } }.to change(Post, :count).by(1)
expect(response).to redirect_to post_path(Post.last)
end
end
context 'with invalid params' do
it 'does not create a new post' do
expect { post posts_path, params: { post: invalid_attributes } }.not_to change(Post, :count)
expect(response).to have_http_status 200
end
end
end
end
Ваш код ответа будет 302, так как сообщение успешно создается. В приведенном вами примере кода вы не получите 201 обратно. Вы можете проверить, что вы не получили 201
expect(response).to_not have_http_status(201).
. Создание новой модели Post не возвращает код состояния HTTP. Создает строку в базе данных. Если вы хотите убедиться, что сообщение было создано, вы можете проверить, что количество сообщений равно 0 в начале теста и 1 в конце.